Я написал скрипт на Python, который использует созданный мной пакет. Мне нужно упаковать его, чтобы я мог установить его на нескольких серверах, но я не могу найти файл setup.py для поиска моих скриптов.
В моем сценарии есть две части: connections.py и модуль, который импортируется как X.utils.printing (где X - имя моей группы).
Мне нужно связать оба с distutils.
Я прочитал документацию по Python Distutils около пяти раз, но просто не понимаю.
Вот что мне нужно сделать:
1) Убедитесь, что мой модуль печати установлен и может быть импортирован с помощью
from X.utils.printing import PrettyPrint as PP
2) Поместите connections.py в / usr / sbin /
Это должно быть очень просто, но это сводит с ума.
Вот мой текущий setup.py, который не работает:
from distutils.core import setup
setup(name='connections', version='0.1.1',
description='Print number of IHS connections',
author='fandingo', author_email='fandingo@fandingo.com',
package_dir = {'X.utils' : 'X'},
packages=['X.utils.printing'], py_modules=['printing', 'connections'])
setup.py находится и запускается из каталога с именем «python» и содержит статистику подключений / и X внутри. у соединения-статистики есть соединения. X имеет init .py, utils / init .py и utils / printing.py.
Когда я пытаюсь запустить setup.py, я получаю следующий вывод:
python setup.py bdist
работает bdist работает bdist_dumb
запуск сборки, запуск файла build_py
printing.py (для модульной печати) не
найден файл connections.py (для модуля
соединений) ошибка не найдена: пакет
каталог 'X / printing' не существует
Может ли кто-нибудь помочь мне исправить мой setup.py, чтобы я мог упаковать свой скрипт и модуль?
Спасибо за помощь.
Редактировать: Я не пытался скопировать connections.py в / usr / sbin /. Я не нашел больше, чем distutils, не найдя мои модули.
Редактировать 2:
Я думаю, что я все ближе, но не могу заставить работать мою иерархию пакетов.
Использование
setup(name='connections', version='0.1.1', description='Print number of IHS connections',
author='fandingo', author_email='fandingo@fanding.com',
package_dir = {'printing' : 'X/utils'}, packages=['printing'],
scripts=['connection-stats/connections.py'])
Я получаю успешную сборку, которая имеет файл connections.py в том, что должно стать / usr / sbin / при выполнении установки.
Единственная проблема заключается в том, что печать импортируется без X.utils.printing.
Я могу изменить его на X, но он не включает дочерние пакеты.
setup(name='connections', version='0.1.1',
description='Print number of IHS connections',
author='fandingo',
author_email='fandingo@fandingo.com',
packages=['X'],
scripts=['connection-stats/connections.py'])
Проблема в том, что X импортируется, но только init .py. утилиты / не включены, что означает, что я не получаю утилиты / printing.py
Как будто мне нужна какая-то рекурсивная опция, чтобы я мог добавить X и все, что ниже. Есть мысли?
Спасибо
----------------------
Редактировать 3:
Почти закончен. Я понял, что мне нужно явно перечислить каждый подпакет в X. Вот исправленный setup.py
setup(
name='connections',
version='0.1.1',
description='Print number of IHS connections',
author='fandingo',
author_email='fandingo@fandingo.com',
package_dir = {'utils' : 'X/', 'printing' : 'X/utils/'},
packages=['X', 'X.utils'],
py_modules = ['printing'],
scripts=['connection-stats/connections.py'])
Единственное, что connection.py не перемещается в / usr / sbin /. Я думаю, что я просто добавлю опцию после установки, чтобы переместить ее вручную.