2016-02-08 154 views
2

基于Github上,包我在Github上一个Python回购与setup.pyrequirements.txt。本来,setup.py包含一些这样的:安装依赖与PIP

setup(
    ... 
    install_requires=[x for x in open("requirements.txt").read().splitlines() if "://" not in x], 
    dependency_links=[x for x in open("requirements.txt").read().splitlines() if "://" in x] 
) 

当我做pip install git+https://github.com/foo/[email protected]#egg=foo这个回购协议,它正确地安装install_requires依赖关系,但忽略dependency_links额外的基于Github的依赖关系。

经过大量调查 - StackOverflow,#python和文档(FWIW) - 有建议dependency_links已弃用,应将所有内容放入install_requires。所以,我改变我的setup.py到:

setup(
    ... 
    install_requires=open("requirements.txt").read().splitlines() 
) 

现在PIP抱怨,一旦进入到基于Github上的依赖 - 我们称之为quux - ,它的期待“的版本规格”。我已经试过:

...以及没有规定,既没有在我的requirements.txt和我保持前面-e任何版本收到此错误。我也尝试了不同格式的URL方案,也没有任何的区别。

如何格式化我的requirements.txtsetup.py以处理基于Git的依赖关系?

+1

我也尝试过弃用的'PIP安装--process依赖性链接...'与原来'setup.py':这没有什么区别,依然没有安装基于Github的依赖关系。 – Xophmeister

回答

0

我正在运行pip install --process-dependency-links ...这个setup.py文件什么工作:

setup(
    ... 
    install_requires=[ 
     'my_lib==0.1.0', 
    ], 
    dependency_links=[ 
     'git+ssh://[email protected]/foo/[email protected]#egg=my_lib-0.1.0', 
    ] 
) 

注意,如你所说,--dependency_links已被弃用,并且将在未来的PIP的版本中删除。在这种情况下,我不知道解决的办法是什么。