Почему мой модуль 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