Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.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 指定pip安装-e所需的额外功能_Python_Git_Pip - Fatal编程技术网

Python 指定pip安装-e所需的额外功能

Python 指定pip安装-e所需的额外功能,python,git,pip,Python,Git,Pip,从git存储库安装时,如何使用pip安装额外的需求 我知道当项目在pypi上时,您可以执行pip安装项目[extra]。 您必须执行pip安装-e git+https://github.com/user/project.git#egg=project用于git回购,但我没有找到如何将这两个选项链接在一起。这应该可以 对于远程回购: pip install -e git+https://github.com/user/project.git#egg=project[extra] 这是为当地人准备

从git存储库安装时,如何使用pip安装额外的需求

我知道当项目在pypi上时,您可以执行
pip安装项目[extra]

您必须执行
pip安装-e git+https://github.com/user/project.git#egg=project
用于git回购,但我没有找到如何将这两个选项链接在一起。

这应该可以

对于远程回购:

pip install -e git+https://github.com/user/project.git#egg=project[extra]
这是为当地人准备的(感谢@Kurt Bourbaki):


需要注意的重要事项:括号内或括号内不应有空格。也就是说,这不起作用:
-e.“[extra-1,extra-2]”
-甚至作为requirements.txt文件中的一行,它并不明显。最糟糕的是,当你有空白时,额外的内容会被忽略。

这在从
whl
文件安装时也有效,例如,你可以:

pip install path/to/myapp-0.0.1-py3-none-any.whl[extra1]

这与文档中的内容相去甚远,也不是特别直观。

使用git+ssh从私有存储库安装带有附加功能的软件包:

pip install -e 'git+ssh://git@github.com/user/project.git#egg=project[extra1,extra2]'

我的问题不在于简单的依赖关系,而在于我需要什么!当您在requirements.txt或setup.py中定义它时,它也可以工作。但是如果使用了
pip install-e.
,而不是URL,该怎么办?@ankostis
pip install-e.[extra]
应该可以工作。如果您使用的是
zsh
您需要避开方括号:
pip install-e.\[extra\]
。还要注意,如果
setup.py
中的要求不是由
pip
安装的,可能是因为谢谢您,这也正是我所需要的。我只是想知道,如果git repo包含多个未在setup.py中明确列出的包,即“find_packages”,我想使用
git+https…
获得与
pip install-e相同的安装。[额外]
?这
pip安装-e git+https://github.com/user/project.git#egg=.[extra]
不起作用。谢谢,这给我带来了很多麻烦。我还没有在任何地方看到多个extra的文档,但这是一个非常重要的提示@你说得对,它似乎没有记录在案——但至少在撰写本文时,它的表现是这样的。两个临时演员之间应该没有空隙。此外,使用git安装软件包已经包含在公认的答案中,尽管使用的是
https
而不是
ssh
。我想说,这个答案最好是作为一个编辑而不是被接受的答案,努力积累和构建知识
pip install -e 'git+ssh://git@github.com/user/project.git#egg=project[extra1,extra2]'