В нашем предыдущем посте мы сделали Hello World! приложение, чтобы получить нас начатым с клика. Возможно, вы заметили, что мы должны были сделать Python Hello-world.py
запустить его. Так как мы строим приложения CLI, это просто не круто 😅 И это не то, как в любом случае работают приложения CLI. Нам нужно иметь возможность запускать одну команду, что-то вроде:
(venv) $ hello Hello World!
Вот где seturgools приходит в. SetUpewsools помогает нам связывать наш скрипт, чтобы мы могли установить его и запустить его как приложение ( $ Hello
), а не как скрипт ( $ Python Hello-world.py
).
SetUpeWools – это сборник улучшений для Python Distutils, которые позволяют разработчикам легче построить и распространять пакеты Python, особенно те, которые имеют зависимости от других пакетов. – Документы
ОК, достаточно Chit-Chat. Давайте получим эту работу. Первое, что нам нужно сделать, это добавить новый файл в наш проект и позвонить в него Setup.py.
. Мы также переименоваем Hello-world.py
к helloworld.py
(Удалите тире). Я объясню, почему это необходимо, когда мы доберемся до Настройка ()
раздел. Наша структура проекта теперь должна выглядеть так:
hello-world-cli |- helloworld.py # renamed from hello-world.py |- setup.py # new file
В helloworld.py
Удалите Если __name__:
раздел. Код теперь должен выглядеть так:
import click @click.command() def hello(): click.echo('Hello World!')
В setup.py
Файл, добавьте этот код:
from setuptools import setup setup( name='hello-world-cli', py_modules=['helloworld'], install_requires=[ 'Click', ], entry_points=''' [console_scripts] hello=helloworld:hello ''', )
Давайте рассмотрим, что делает каждую строку кода.
from setuptools import setup
Нам нужно импортировать Настройка
от seturgools
Для того, чтобы использовать его.
Далее мы называем Настройка ()
Функция и пропуск по ряду параметров:
name='hello-world-cli'
Это будет имя нашего приложения CLI.
py_modules=['helloworld']
Это говорит о Настройка ()
Где найти наш основной модуль для выполнения. Наш основной файл здесь helloworld.py.
Итак, мы устанавливаем helloworld
как модуль. Мы можем сохранить это так просто, поскольку у нас есть только один файл на данный момент, но, поскольку наше приложение растет, мы заменим py_modules
с пакеты = Find_packages ()
Отказ Больше на этом позже.
install_requires=['Click']
Наше приложение щелкнуло как зависимость, поэтому его необходимо установить для его работы. Настройка ()
Нужно знать об этом, поэтому он может включать его как он упаковывает наш проект. install_requires
Принимает список значений, поэтому, если у нас были больше зависимостей, мы бы перечислили их здесь.
entry_points=''' [console_scripts] hello=helloworld:hello '''
Это часть, которая экономит нам хлопот необходимости запускать приложение с Python ...
каждый раз и позволяет нам просто выполнить Привет
запустить его.
Важно отметить, что если мы поддерживаем наше предыдущее имя ( hello-world.py ) , то настраивать не удалось бы в intry_points. . Это потому, что имена модулей Python не должны иметь тире.
Теперь мы можем установить ваше приложение в нашу среду и запустить его. Чтобы установить его, запустите:
(venv) $ pip install --editable .
Затем выполните созданную команду:
(venv) $ hello Hello World!
Довольно аккуратно, верно? 😃
В следующем посте мы приблизимся к командам, параметрам и аргументам щелчков, параметров и аргументов, и как мы можем использовать их, чтобы наше приложение еще лучше.
Оригинал: “https://dev.to/wangonya/using-setuptools-to-package-your-python-app-18p4”