Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.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 requirements.txt中私有git存储库的路径-如何使其与manual setup.py安装一起工作?_Python_Git_Pip_Gitlab - Fatal编程技术网

Python requirements.txt中私有git存储库的路径-如何使其与manual setup.py安装一起工作?

Python requirements.txt中私有git存储库的路径-如何使其与manual setup.py安装一起工作?,python,git,pip,gitlab,Python,Git,Pip,Gitlab,我在requirements.txt中有一行如下所示: -e git+ssh://git@company.com/company/dependency.git#egg=dependency 在我们的CI中,我们没有此服务器的密钥,它通过子模块安装在Gitlab中,然后手动运行python dependency/setup.py install。这是可行的,但是我不能运行pip install-r requirements.txt,因为它试图获取存储库,即使它已经安装了。除了编辑requirem

我在requirements.txt中有一行如下所示:

-e git+ssh://git@company.com/company/dependency.git#egg=dependency

在我们的CI中,我们没有此服务器的密钥,它通过子模块安装在Gitlab中,然后手动运行
python dependency/setup.py install
。这是可行的,但是我不能运行
pip install-r requirements.txt
,因为它试图获取存储库,即使它已经安装了。除了编辑requirements.txt之外,有没有办法将某个包标记为“已安装,不要试图通过git刷新它”?

一个解决方案是完全摆脱
-e git://
,在自述文件中记录您希望用户运行
git submodules init&&git submodules update
git clone--recursive
并使用
-e path

您的setup.py文件是python文件。我不知道setuptools是否支持这样的功能,但如果不支持,您可能可以在setup.py中添加代码来执行此检查并相应地采取行动?@idjaw问题似乎更像是pip的行为而不是setuptools。是的。我的意思是,在运行pip命令之前,您可以根据您所处的环境执行操作。您的pip命令是在安装程序中执行的,因此在执行该pip之前需要执行初步步骤。问题是我无法更改依赖项的setup.py,因为问题在于获取它。理想情况下,我希望能够在
-e
命令中指定一些标签,上面写着“这个包被称为XYZ-如果已经安装了XYZ,就不要更新它”。