如何在setup.py中指定库版本?
在我的 setup.py
文件里,我列出了一些运行我的项目所需要的库:
setup(
# ...
install_requires = [
'django-pipeline',
'south'
]
)
我该怎么指定这些库的版本呢?
2 个回答
6
你可以把它们和版本信息一起添加到你的 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
168
我不太确定关于buildout的事情,不过对于setuptools或distribute,你可以用比较符号来指定版本信息,比如==
、>=
或者<=
。
举个例子:
install_requires = ['django-pipeline==1.1.22', 'south>=0.7']
可以查看一下Python打包文档