如何在 setup.py 中指定库版本?

在我的 setup.py文件中,我指定了几个运行项目所需的库:

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

如何指定这些库的必需版本?

56190 次浏览

I'm not sure about buildout, however, for setuptools/distribute, you specify version info with the comparison operators (like ==, >=, or <=).

For example:

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

You can add them to your requirements.txt file along with the version.

For example:

django-pipeline==1.1.22
south>=0.7

and then in your setup.py

import os
from setuptools import setup


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


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

Reading from the docs -

It is not considered best practice to use install_requires to pin dependencies to specific versions, or to specify sub-dependencies (i.e. dependencies of your dependencies). This is overly-restrictive, and prevents the user from gaining the benefit of dependency upgrades.

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