pip安装私有包

时间:2013-11-20 03:33:17

标签: python pip setuptools

我有一个python包A依赖于另一个名为godot的私有包(托管在bitbucket,应该通过git + ssh协议访问)。在包A的setup.py中,我有以下代码:

...
install_requires=['godot'],
dependency_links=['git+ssh://git@bitbucket.org/xxx/godot.git#egg=godot']
...

我在这里有两个问题:

  1. 现在setuptools 1.4(最新稳定版)不支持'git + ssh'协议,只有开发分支中的代码处理此协议:Python setuptools: How can I list a private repository under install_requires?。我通过以下方式安装了开发版本:

    pip install --upgrade --force-reinstall hg+https://bitbucket.org/pypa/setuptools#egg=setuptools

    我几乎解决了这个问题,但我想知道是否有其他方法可用?调用pip install -r requirements.txt(在requirements.txt中有 git + ssh://git@bitbucket.org/xxx/godot.git#egg=godot 列表)?

    < / LI>
  2. 第二个问题是姓名冲突。 pypi上还有另一个名为godot的软件包,所以当我使用follow命令安装软件包时,pip从pypi index安装了godot:

    pip install git+ssh://git@pypi.corp.com/xxx/A.git#egg=A

    如何强制pip(setup.py)安装私有godot包,而不是pypi索引上的那个?

1 个答案:

答案 0 :(得分:0)

对于第1部分:您可以通过指定as:

来通过pip安装包
$ pip install http://my.package.repo/SomePackage-1.0.4.zip

为了简单起见并避免花费不适当的时间,我只需下载.zip源文件并通过pip安装,如上所述。

here ...

对于第2部分:pip有一个--no-dependencies开关。手动安装所有依赖项后添加它