gpt4 book ai didi

python - 通过 pip 安装可传递的 bitbucket 依赖项

转载 作者:太空狗 更新时间:2023-10-30 00:11:28 25 4
gpt4 key购买 nike

我要解决的情况是从 bitbucket 上的私有(private)存储库安装一个包,它依赖于 bitbucket 中的另一个私有(private)存储库。

我用它来启动安装:

pip install -e git+https://bitbucket.org/myuser/project-one.git/master#egg=django_one 

然后尝试从 setup.py 下载它的依赖项,如下所示:

install_requires = ['project-two',],
dependency_links = ['git+https://bitbucket.org/myuser/project-two.git/master#egg=project_two'],

这失败了,pip 日志如下所示:

Downloading/unpacking project-two (from project-one)

Getting page https://pypi.python.org/simple/project-two/
Could not fetch URL https://pypi.python.org/simple/project-two/: HTTP Error 404: Not Found (project-two does not have any releases)
Will skip URL https://pypi.python.org/simple/project-two/ when looking for download links for project-two (from project-one)
Getting page https://pypi.python.org/simple/
URLs to search for versions for project-two (from project-one):
* https://pypi.python.org/simple/project-two/
* git+https://bitbucket.org/myuser/project-two.git/master#egg=project-two
Getting page https://pypi.python.org/simple/project-two/
Cannot look at git URL git+https://bitbucket.org/myuser/project-two.git/master#egg=project-two
Could not fetch URL https://pypi.python.org/simple/project-two/: HTTP Error 404: Not Found (project-two does not have any releases)
Will skip URL https://pypi.python.org/simple/project-two/ when looking for download links for project-two (from project-one)
Skipping link git+https://bitbucket.org/myuser/project-two.git/master#egg=project-two; wrong project name (not project-two)
Could not find any downloads that satisfy the requirement project-two (from project-one)

关于此设置的奇怪之处在于,如果我克隆项目一并运行

python setup install

从那里,项目二从 bitbucket 中获取并安装到我的 virtualenv 中。我的理解是 pip 在后台使用设置工具,所以我的假设是该测试的成功验证了我的方法。

任何建议表示赞赏。

跟进:

所以接受的答案是非常正确的 - 但我的问题有额外的复杂性,因为它是一个私有(private) repo (https + http auth-basic)。使用语法

dependency_links=["http://user:password@bitbucket.org/myuser/..."]

仍然导致 401。运行 shell 并使用 pip.download.py 运行 urlopen 演示了潜在的问题(即 pip 需要在 中进行额外设置urllib2 让这个工作)。

提到的问题here但我无法让它工作。

最佳答案

pip 创造了一个 VCS 安装的想法,所以你可以使用 git+https://path/to/repo.git,但是 setuptools 不明白。

当您创建 setup.py 文件时,您仅使用 setuptools(不涉及 pip)和 setuptools 不理解那种 URL。

您可以将 dependency_links 与 tarball 或 zip 文件一起使用,但不能与 git 存储库一起使用。

将您的 depencency_links 替换为:

dependency_links=["https://bitbucket.org/myuser/project-two/get/master.zip#egg=project-two"]

并检查它是否有效。

https://stackoverflow.com/a/14928126/565999 也有类似的问题


引用资料:

关于python - 通过 pip 安装可传递的 bitbucket 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15871081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com