лучший инструмент для построения дистрибутива python с зависимостями / ресурсами
Итак, я работал над проектом python и дошел до того, что мне нужно сделать какой-то инсталлятор/дистрибутив. Теперь этот проект имеет довольно много зависимостей и некоторые ресурсы. До сих пор я изо всех сил пытаюсь создать setup.py но такие вещи, как scipy, matplotlib или даже numpy имеют некоторые проблемы с easy_install. Теперь это должен быть кроссплатформенный установщик / дистрибутив / exe, но запуск с mac-os / linux также будет в порядке. Теперь я погуглил и Enstaller или Distribute кажутся например, альтернативы setuptools и py2exe/pyinstaller также кажутся полезными. Теперь я действительно не хочу начинать и бороться со всеми и, возможно, никуда не попаду, поэтому мой вопрос заключается в том, что вы рекомендуете для этого, учитывая, что количество зависимостей и ресурсов довольно велико?
С уважением, Богдан
1 ответ:
Я не знаю, если это то, что вам нужно, но для python based packaging
Вы можете использовать pastescript для создания вашего setup.py (или сделать скелет проекта / шаблоны)
Пример setup.py
Простой
from setuptools import setup, find_packages setup( name = "google killer", version = "0.1.0", url = 'http://example.com/', license = 'AGPL', description = 'best software ever', author = 'me', packages = find_packages('src'), package_dir = {'': 'src'}, install_requires = ['numpy', 'scipy', 'sqlalchemy'], )
Комплекс. сделано pastescript в проекте pyramid
import os from setuptools import setup, find_packages here = os.path.abspath(os.path.dirname(__file__)) README = open(os.path.join(here, 'README.txt')).read() CHANGES = open(os.path.join(here, 'CHANGES.txt')).read() requires = ['pyramid', 'WebError'] setup(name='test', version='0.0', description='test', long_description=README + '\n\n' + CHANGES, classifiers=[ "Programming Language :: Python", "Framework :: Pylons", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", ], author='', author_email='', url='', keywords='web pyramid pylons', packages=find_packages(), include_package_data=True, zip_safe=False, install_requires=requires, tests_require=requires, test_suite="test", entry_points = """\ [paste.app_factory] main = test:main """, paster_plugins=['pyramid'], )
Вы можете найти их в большинстве проектов python
Также прочитайте Hitchhiker's Guide to Packaging для подробного повествования (краткое руководство полезно)