Как я могу указать версии библиотеки в setup.py?

В моем setup.py файл, я указал несколько библиотек, необходимых для запуска моего проекта:

setup(
    # ...
    install_requires = [
        'django-pipeline',
        'south'
    ]
)

Как я могу указать необходимые версии этих библиотек?

2 ответа

Решение

Я не уверен насчет buildout, однако для setuptools/distribate вы указываете информацию о версии с помощью операторов сравнения (например, ==, >=, или же <=).

Например:

install_requires = ['django-pipeline==1.1.22', 'south>=0.7']

Вы можете добавить их в свой requirements.txt файл вместе с версией.

Например:

      django-pipeline==1.1.22
south>=0.7

а затем в вашем setup.py

      import os
from setuptools import setup

with open('requirements.txt') as f:
    required = f.read().splitlines()

setup(...
install_requires=required,
...)

Чтение из документов -

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

https://packaging.python.org/discussions/install-requires-vs-requirements/#id5

Другие вопросы по тегам