лучший инструмент для построения дистрибутива python с зависимостями / ресурсами


Итак, я работал над проектом python и дошел до того, что мне нужно сделать какой-то инсталлятор/дистрибутив. Теперь этот проект имеет довольно много зависимостей и некоторые ресурсы. До сих пор я изо всех сил пытаюсь создать setup.py но такие вещи, как scipy, matplotlib или даже numpy имеют некоторые проблемы с easy_install. Теперь это должен быть кроссплатформенный установщик / дистрибутив / exe, но запуск с mac-os / linux также будет в порядке. Теперь я погуглил и Enstaller или Distribute кажутся например, альтернативы setuptools и py2exe/pyinstaller также кажутся полезными. Теперь я действительно не хочу начинать и бороться со всеми и, возможно, никуда не попаду, поэтому мой вопрос заключается в том, что вы рекомендуете для этого, учитывая, что количество зависимостей и ресурсов довольно велико?

С уважением, Богдан

1 4

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 для подробного повествования (краткое руководство полезно)