This answer帮助我解决了你正在谈论的同一问题。
似乎没有一种简单的方法让setup.py直接使用需求文件来定义它的依赖关系,但是可以将相同的信息放入setup.py本身。
我有这个requirements.txt:
PIL
-e git://github.com/gabrielgrant/django-ckeditor.git#egg=django-ckeditor
但安装该requirements.txt的含包时,要求由PIP忽略。
这setup.py似乎强迫PIP进入安装依赖关系(包括Django的CKEditor的我github上的版本):
from setuptools import setup
setup(
name='django-articles',
...,
install_requires=[
'PIL',
'django-ckeditor>=0.9.3',
],
dependency_links = [
'http://github.com/gabrielgrant/django-ckeditor/tarball/master#egg=django-ckeditor-0.9.3',
]
)
编辑:
This answer还包含了一些有用的信息。
需要指定版本作为“#egg = ...”的一部分,以确定该链接上的哪个版本的软件包可用。
但是请注意,如果你总是希望依靠你的最新版本,您可以设置install_requires的版本
dev
,dependency_links和其他包的setup.py
编辑:使用dev
作为版本ISN根据下面的评论,这不是一个好主意。
与“开发”的伎俩只适用于第一次,而不是随后的时间。 setup.py只检查“dev”字符串作为自己的版本 – DanEEStar 2012-07-05 15:39:17
@DanEEStar没错。一旦安装了包的_dev_版本'setuptools'就会考虑满足要求。正如在[链接的答案](http://stackoverflow.com/a/2163919/396967)中所演示的那样,您需要同步更新*全部3个地方中的软件包版本*:依赖项的'setup.py'和'install_requires'和'dependency_links' - 不太实际。 – kynan 2012-12-17 02:11:05
是的@DanEEStar你是对的。我已经编辑出使用'dev'版本的建议。谢谢你们两位! – 2013-02-21 18:28:06