Что значит 'python setup.py проверить' на самом деле сделать?


Что именно делает python setup.py check на самом деле?

1 8

1 ответ:

Первая остановка,distutils документация по пакету :

Команда проверки выполняет некоторые тесты на мета-данных пакета. Например, он проверяет, что все необходимые метаданные предоставляются в качестве аргументов, передаваемых функции setup().

Таким образом, он проверяет, правильно ли вы заполнили метаданные; рассматривайте это как шаг контроля качества при создании пакета Python.

Далее, мы можем проверить, предлагает ли командная строка какие-либо справка:

$ python setup.py --help-commands | grep check
  check             perform some checks on the package
$ python setup.py check --help
# ...
Options for 'check' command:
  --metadata (-m)          Verify meta-data
  --restructuredtext (-r)  Checks if long string meta-data syntax are
                           reStructuredText-compliant
  --strict (-s)            Will exit with an error if a check fails
Таким образом, мы можем проверить метаданные и проверить длинное описание как реструктурированный текст. Для последнего требуется, чтобы вы установили docutils:
$ python setup.py check -rs
running check
error: The docutils package is needed.

Если он установлен и нет никаких проблем, скрипт просто запускается и завершает работу без сообщений:

$ python setup.py check -r
running check

Но если необходимые метаданные отсутствуют, вы получаете предупреждающие сообщения:

$ python setup.py check -r
running check
warning: check: missing required meta-data: url

warning: check: missing meta-data: either (author and author_email) or (maintainer and maintainer_email) must be supplied

, который становится ошибкой, если у вас есть флаг -s:

$ python setup.py check -rs
running check
warning: check: missing required meta-data: url

warning: check: missing meta-data: either (author and author_email) or (maintainer and maintainer_email) must be supplied

error: Please correct your package.

По умолчанию включено -m , -r и -s отключены.

Также смотрите исходный код команды .