PIP:如何级联需求文件和使用私有索引?

时间:2015-03-26 17:30:52

标签: python heroku pip

我正在尝试将一个Django应用程序部署到Heroku,其中一个必需的软件包位于https://testpypi.python.org/pypi上,当然Django位于主PyPI服务器上。

我的设置看起来像这样。

# requirements.txt
-r requirements/req2.txt
-r requirements/req3.txt
# requirements/req2.txt
Django==1.7.7
# requirements/req3.txt
-i https://testpypi.python.org/pypi
foo-bar==0.4

运行命令:pip install -r requirements.txt会导致以下错误。

Could not find any downloads that satisfy the requirement 
Django==1.7.7 (from -r ./requirements/req2.txt (line 2))
No distributions at all found for Django==1.7.7 
(from -r ./requirements/req2.txt (line 2))

所以对我来说,似乎-i中的req3参数被设置然后pip尝试在testpypi服务器上查找Django。

我尝试将-i https://pypi.python.org/pypi添加到req2.txt,但我仍然遇到同样的错误。 (可能https://pypi.python.org/pypi是错误的网址)

另外如果我单独运行req*.txt个文件,那么软件包的安装是否成功?

如何级联需求文件并使用私有索引?

不可否认this questionthis one非常相似,但都不涉及私人索引

1 个答案:

答案 0 :(得分:1)

事实证明,处理私有索引的正确方法是使用--extra-index-url开关。来自documentation of pip

  

请注意,使用--index-url会删除PyPI的使用,而使用--extra-index-url会添加其他索引。

所以,放行

--extra-index-url https://testpypi.python.org/pypi
requirements.txt之上

就足够了。根本不需要级联!