gpt4 book ai didi

Python 安装工具 : How can I list a private repository under install_requires?

转载 作者:IT老高 更新时间:2023-10-28 21:43:46 26 4
gpt4 key购买 nike

我正在创建一个 setup.py依赖于私有(private) GitHub 存储库的项目的文件。文件的相关部分如下所示:

from setuptools import setup
setup(name='my_project',
...,
install_requires=[
'public_package',
'other_public_package',
'private_repo_1',
'private_repo_2',
],
dependency_links=[
'https://github.com/my_account/private_repo_1/master/tarball/',
'https://github.com/my_account/private_repo_2/master/tarball/',
],
...,
)

我正在使用 setuptools而不是 distutils因为后者不支持install_requiresdependency_links每个 this 的参数回答。

上述设置文件无法访问私有(private)存储库并出现 404 错误 - 这是意料之中的,因为 GitHub 会向未经授权的私有(private)存储库请求返回 404。但是,我不知道如何制作 setuptools验证。

以下是我尝试过的一些事情:

  1. 使用git+ssh://而不是 https://dependency_links就像我使用 pip 安装 repo 一样.这失败了,因为 setuptools 无法识别此协议(protocol)(“未知 url 类型:git+ssh”),尽管 distribute documentation说应该。同上 git+httpsgit+http .

  2. https://<username>:<password>@github.com/... - 仍然得到 404。(此方法不适用于命令行中的 curlwget - 尽管 curl -u <username> <repo_url> -O <output_file_name> 确实有效。)

  3. 将 setuptools (0.9.7) 和 virtualenv (1.10) 升级到最新版本。还尝试通过 this overview 安装分发说它被合并回setuptools。不管怎样,没有骰子。

目前我只有 setup.py打印出一个警告,私有(private)仓库必须单独下载。这显然不太理想。我觉得我错过了一些明显的东西,但想不出它可能是什么。 :)

没有答案的重复问题 here .

最佳答案

我试图让它与 pip 一起安装,但上面的方法对我不起作用。从 [1] 我了解应该使用 PEP508 标准,从 [2] 我检索到一个实际有效的示例(至少对我而言)。

请注意;这是 pip 20.0.2Python 3.7.4

setup(
name='<package>',
...
install_requires=[
'<normal_dependency>',
# Private repository
'<dependency_name> @ git+ssh://git@github.com/<user>/<repo_name>@<branch>',
# Public repository
'<dependency_name> @ git+https://github.com/<user>/<repo_name>@<branch>',
],
)

以这种方式指定我的包后,安装工作正常(也可以使用 -e 设置,无需指定 --process-dependency-links)。

引用文献[1] https://github.com/pypa/pip/issues/4187[2] https://github.com/pypa/pip/issues/5566

关于Python 安装工具 : How can I list a private repository under install_requires?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18026980/

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