Как упаковать библиотеки Python, которые я использую, чтобы я мог распространять их с моим приложением и иметь как можно меньше зависимостей - PullRequest
4 голосов
/ 01 декабря 2008

Как упаковать библиотеки Python, которые я использую, чтобы я мог распространять их с моим приложением и иметь как можно меньше зависимостей, а также не конфликтовать с другой версией lib /, которая уже есть в моей системе.

Л.Е .: Извините, я забыл указать. Я буду делать это на Linux. И я не имею в виду сделать мое приложение установочным файлом, таким как deb / rpm и т. Д., Но как организовать свои файлы так, как, например, я буду использовать cherrypy и sqlalchemy, я отправлю их вместе с моим приложением и не добавлю пользователя через боль установки всех зависимостей сам.

Ответы [ 4 ]

4 голосов
/ 01 декабря 2008

Вы можете попробовать freeze.py, подробнее см. http://wiki.python.org/moin/Freeze.

3 голосов
/ 01 декабря 2008

Попробуйте py2exe .

2 голосов
/ 01 декабря 2008

Ваши пользователи могут запускать систему из сценария запуска, и этот сценарий может заранее исправить путь python, чтобы поставить ваши версии на первое место. Например, если вы поместили CherryPy, SQLAlchemy и т. Д. Во «внешний» подкаталог, вы можете попробовать:

# startproj.sh
script_path=`dirname $0`
export PYTHONPATH=${script_path}/external;${PYTHONPATH}
exec ${script_path}/projstartup.py
2 голосов
/ 01 декабря 2008

Но если вы делаете деб с правильными перечисленными зависимостями, установщик загрузит их для пользователя. Это лучший способ, так как он не избыточен.

Может быть, вы могли бы сделать tar или zip с вашим deb и всеми сторонними deb и установочным скриптом, который просто устанавливает все debs в правильном порядке. Таким образом, если у пользователя уже есть какой-либо пакет, он не будет установлен снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...