Лучший способ включения сторонних зависимостей в приложение Python

Каков наилучший способ распространения зависимостей для приложения?

Предположим, я хочу опубликовать приложение, которое зависит от SqlAlchemy – есть ли чистый способ включить SqlAlchemy в мой репозиторий, не заставляя пользователя его устанавливать?

2 Solutions collect form web for “Лучший способ включения сторонних зависимостей в приложение Python”

Стандартом сообщества является использование диспетчера пакетов pip с файлом требований .

Например

 SQLAlchemy>=0.9.8 

Это заставит установку SQLAlchemy с версией выше или равной 0.9.8 .

Если вы хотите распространять свой код автономно, вы можете рассмотреть возможность создания отдельного каталога для сторонних пакетов и расширения переменной среды PYTHONPATH .

export PYTHONPATH=$PYTHONPATH:/path/to/3rdpartypackages/

Хотя это заставит пользователя установить его, я бы рекомендовал использовать для этого файл требований к протоколам. ( http://www.pip-installer.org/en/latest/user_guide.html#requirements-files )

Для этой конкретной проблемы файл может быть прост, как одна строка:

 SQLAlchemy 

Как общая практика, вы должны указать номер версии, на которую вы зависите в этом файле. Если вы не хотите, чтобы пользователь должен был устанавливать вещи, потому что вы беспокоитесь о загрязнении их основной установки, я хотел бы использовать VirtualEnv для этого ( http://www.virtualenv.org/en/latest/ ) – Это рекомендуемое средство распределения зависимостей для проектов Django, по крайней мере.

  • Использование VirtualEnv с несколькими версиями Python на окнах
  • autoenv выполняется даже в подпапке
  • Ускорение виртуального создания с помощью numpy и pandas
  • Каков путь для TEMPLATE_DIRS в настройках django.py при использовании virtualenv
  • Создание изолированной среды в virtualenv с помощью python 2.7 завершается с ошибкой на ubuntu?
  • Использование библиотеки изображений Python с VirtualEnv в Windows
  • Установка lxml в virtualenv для windows
  • Совместное использование сценариев, требующих активации virtualenv
  • Python - лучший язык программирования в мире.