如何在setup.py中向repo子目录添加依赖关系链接

时间:2018-05-09 09:09:57

标签: python python-3.x pip

我有以下两个存储库: 一个经典的setup.py,第二个看起来像:

/repo /folder1 /folder2 /utils /setup.py

在第一次回购的setup.py中,我想从第二个回购安装utils。 我尝试了以下代码:

install_requires=["repo"],
dependency_links=['git+ssh://git@bitbucket.aaaaaaa.aa:0000/project/repo@master#egg=repo&subdirectory=folder2']

但是在python setup.py开发之后我有以下错误:

unknown url type: git+ssh -- Some packages may not be found!

2 个答案:

答案 0 :(得分:4)

我有same issue

janfreyberg的答案由于pip中的更改而不再起作用: 自19.0起,dependency_links已过时。

pip 18.1开始,我们可以使用PEP 508引入的语法将这些依赖项放在install_requires中。

这是您的解决方案:

install_requires=[
    'repo @ git+ssh://git@bitbucket.aaaaaaa.aa:0000/project/repo@master#subdirectory=folder2'
]

setup(install_requires=install_requires)

请注意,这需要使用pip install .,而不能与python setup.py install一起使用。

如果folder2本身具有依赖性,则将以递归方式检索所有内容。

答案 1 :(得分:2)

我发现这对我有用:

depndendcy_links=["git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI#egg=pycocotools-2.0"]

因此,将子目录和版本指定为#subdirectory=<sub_dir>#<packagename>-<version>