我有一个名为 A 的 Python 包,它依赖于另一个私有包 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)可以吗?
第二个问题是名称冲突。PyPI 中还有另一个名为 godot 的软件包,因此当我使用以下命令安装软件包 A 时,pip 会从 PyPI 索引中安装 godot:
pip install git+ssh://git@pypi.corp.com/xxx/A.git#egg=A
如何强制pip(setup.py)安装私有godot软件包,而不是 pypi 索引中的软件包?