Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python setup.py,在GitLab上使用私有存储库作为基于提交ID的依赖项链接_Python_Git_Dependencies_Gitlab_Setup.py - Fatal编程技术网

Python setup.py,在GitLab上使用私有存储库作为基于提交ID的依赖项链接

Python setup.py,在GitLab上使用私有存储库作为基于提交ID的依赖项链接,python,git,dependencies,gitlab,setup.py,Python,Git,Dependencies,Gitlab,Setup.py,我正在尝试安装一个私有依赖项(不是Python在PyPI上可以找到的东西) 我已将以下内容添加到文件setup.py中(如下所述): dependency\u链接=[ 'https://gitlab.com//.git@' ] 在官方文档中,他们没有详细解释URL的格式,但是使用是非常陈旧和过时的。其来源于2016年12月29日,其中大部分自2012年以来未更新。自那时以来,Python打包环境发生了重大变化。新文档位于 dependency\u链接被宣布为过时链接,并最终在pip19.0中发

我正在尝试安装一个私有依赖项(不是Python在PyPI上可以找到的东西)

我已将以下内容添加到文件
setup.py
中(如下所述):

dependency\u链接=[
'https://gitlab.com//.git@'
]
在官方文档中,他们没有详细解释URL的格式,但是使用
是非常陈旧和过时的。其来源于2016年12月29日,其中大部分自2012年以来未更新。自那时以来,Python打包环境发生了重大变化。新文档位于

dependency\u链接
被宣布为过时链接,并最终在
pip
19.0中发布。它的替代品是
install\u需要具有特殊语法的
(自
pip
19.1起支持):

install\u需要=[
'package_name@git+https://gitlab.com//.git@'
]
看到和


这需要
pip安装
包括
pip安装。
并且不适用于
python setup.py安装
我已经阅读了多个答案,但只有这一个对我有效(使用
pip 20.2.3
和功能):

pip3安装--额外索引urlhttps://__token__:my_personal_token@gitlab.com/api/v4/projects/347/packages/pypi/simple。
我的
setup.py
看起来像:

从设置工具导入设置
安装程序(name='whatever\u production\u scripts',
version='0.0.1',
description='which production scripts',
url='1〕https://gitlab.com/user/whatever',
“我自己”,
作者(电邮地址)user@whatever.com',
许可证=“保留所有权利”,
剧本=[
“无论什么制作脚本/制作/失眠.py”,
'无论生产脚本/production/rdsmainance.py是什么',
'无论生产脚本/production/changeinstancetype.py是什么',
],
包裹=[
“无论生产脚本是什么”,
“无论是什么制作脚本制作”,
],
分类器=[
“发展状况:3-阿尔法”,
“目标受众::系统管理员”,
“操作系统::POSIX::Linux”,
“主题:互联网”,
“主题::系统::系统管理”,
“编程语言::Python::3::仅限”
],
安装所需的=[
“privatepackage1>=0.1”,
“publicpackage1>=7”,
“publicpackage2>=2”
],
zip_safe=False)

谢谢,这只在使用
pip安装时起作用。
,我想接受这个答案。请您提一下
pip安装。
python setup.py安装之间的注意事项--record installed_files.txt
,也许是第二次安装失败的原因。由于某种原因,当我将提交ID更新为一个新值时,
pip
表示
需求已经满足
。我必须首先手动
pip uninstall-y package\u name
以确保
pip
然后提取具有预期提交ID的版本。如果我要指定主分支提交,该怎么办?@LukAron请更具体一些-是否要指定
master
分支(每次
pip安装
使用不同的提交)或仅一次提交(与分支无关)?@phd运行
pip安装
时主分支指向的提交
Reading https://gitlab.com/<PRIVATE_ORG>/<PRIVATE_REPO>.git@<COMMIT_ID>
install_requires=[
    ...
    "mylibraryname @ git+https://<ACCESS_TOKEN_NAME>:<ACCESS_TOKEN_VALUE>@gitlab.com/<PRIVATE_ORG>/<PRIVATE_REPO>.git@<COMMIT_ID>",
    ...
],
Searching for mylibraryname@ git+https://<ACCESS_TOKEN_NAME>:<ACCESS_TOKEN_VALUE>@gitlab.com/<PRIVATE_ORG>/<PRIVATE_REPO>.git@<COMMIT_ID>
Reading https://pypi.org/simple/mylibraryname/
Couldn't find index page for 'mylibraryname' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading https://pypi.org/simple/
No local packages or working download links found for mylibraryname@ git+https://<ACCESS_TOKEN_NAME>:<ACCESS_TOKEN_VALUE>@gitlab.com/<PRIVATE_ORG>/<PRIVATE_REPO>.git@<COMMIT_ID>
error: Could not find suitable distribution for Requirement.parse('mylibraryname@ git+https://<ACCESS_TOKEN_NAME>:<ACCESS_TOKEN_VALUE>@gitlab.com/<PRIVATE_ORG>/<PRIVATE_REPO>.git@<COMMIT_ID>')
Collecting mylibraryname@ git+https://<ACCESS_TOKEN_NAME>:<ACCESS_TOKEN_VALUE>@gitlab.com/<PRIVATE_ORG>/<PRIVATE_REPO>.git@<COMMIT_ID> from git+https://<ACCESS_TOKEN_NAME>:****@gitlab.com/<PRIVATE_ORG>/<PRIVATE_REPO>.git@<COMMIT_ID> (from <MY_LIBRARY_WITH_SETUP_PY>==<MY_LIBRARY_VERSION>)
  Cloning https://<ACCESS_TOKEN_NAME>:****@gitlab.com/<PRIVATE_ORG>/<PRIVATE_REPO>.git (to revision <COMMIT_ID>) to /tmp/pip-install-bakazwe2/mylibraryname
  Running command git clone -q https://<ACCESS_TOKEN_NAME>:sYzRKNsYAnv5GtS6zLZj@gitlab.com/<PRIVATE_ORG>/<PRIVATE_REPO>.git /tmp/pip-install-bakazwe2/mylibraryname
install_requires=[
    'package_name @ git+https://gitlab.com/<PRIVATE_ORG>/<PRIVATE_REPO>.git@<COMMIT_ID>'
]