Почему мой модуль python не устанавливается?

Я пытаюсь создать плагин для распределителя пульпы, который будет выполнять скрипт bash, содержащий произвольный код, чтобы я мог запускать действия после публикации репозитория RPM.

Эти плагины обычно создаются с использованием distutils. Однако, когда я пытаюсь установить мой модуль, я получаю сообщение об ошибке:

warning: install_lib: 'build/lib' does not exist -- no Python modules to install

Обычно это означает, что рабочий каталог неверен или отсутствует __init.py__. В моем случае, однако, я пытаюсь установить из правильного рабочего каталога, и я создал файлы __init.py__ (см. Репозиторий здесь).

Я подозреваю, что сталкиваюсь с проблемой пути, связанной с тем, что мой код находится в подкаталоге, который пока удален из setup.py. Что я делаю неправильно? Почему мой модуль не устанавливается?

1 ответ

Когда вы сталкиваетесь с такими ошибками, первое, что нужно проверить, это то, какие пакеты добавляются в ваш дистрибутив при его сборке. В вашем случае список пакетов пуст, но должен содержать как минимум pulp_hook пакет:

$ python -c "from setuptools import find_packages; print(find_packages())"
[]

Так почему же setuptools не признать pulp_hook как обычный пакет? Посмотрите на его структуру: вы добавили файл с именем __init.py__, но его имя должно быть__init__.py, После переименования файлов pulp_hook и его подкаталоги становятся обычными пакетами:

$ python -c "from setuptools import find_packages; print(find_packages())"
['pulp_hook', 'pulp_hook.plugins', 'pulp_hook.plugins.distributors']

Сейчас build/lib будет создан, потому что сейчас distutils находит хотя бы один пакет для установки:

$ python setup.py install_lib
running install_lib
running build_py
creating build
creating build/lib
creating build/lib/pulp_hook
copying pulp_hook/__init__.py -> build/lib/pulp_hook
creating build/lib/pulp_hook/plugins
copying pulp_hook/plugins/__init__.py -> build/lib/pulp_hook/plugins
creating build/lib/pulp_hook/plugins/distributors
copying pulp_hook/plugins/distributors/distributionhook.py -> build/lib/pulp_hook/plugins/distributors
copying pulp_hook/plugins/distributors/__init__.py -> build/lib/pulp_hook/plugins/distributors
Другие вопросы по тегам