我有一个python包A依赖于另一个名为godot的私有包(托管在bitbucket,应该通过git + ssh协议访问)。在包A的setup.py中,我有以下代码:
...
install_requires=['godot'],
dependency_links=['git+ssh://git@bitbucket.org/xxx/godot.git#egg=godot']
...
我在这里有两个问题:
现在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>第二个问题是姓名冲突。 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索引上的那个?
答案 0 :(得分:0)
对于第1部分:您可以通过指定as:
来通过pip安装包$ pip install http://my.package.repo/SomePackage-1.0.4.zip
为了简单起见并避免花费不适当的时间,我只需下载.zip
源文件并通过pip安装,如上所述。
见here ...
对于第2部分:pip有一个--no-dependencies
开关。手动安装所有依赖项后添加它