【问题标题】:Specify extras_require with pip install -e使用 pip install -e 指定 extras_require
【发布时间】:2021-05-19 18:32:23
【问题描述】:

从 git 存储库安装时,如何使用 pip 安装 extras_requires ?

我知道当项目在 pypi 上时你可以做pip install project[extra]
而且您必须为 git repo 执行pip install -e git+https://github.com/user/project.git#egg=project,但我没有设法找到如何将这两个选项链接在一起。

【问题讨论】:

标签: python git pip


【解决方案1】:

这应该可行,per example #6

对于远程仓库:

pip install -e git+https://github.com/user/project.git#egg=project[extra]

这对于本地人来说(感谢@Kurt-Bourbaki):

pip install -e .[extra]

【讨论】:

  • 正是我需要的!当您在 requirements.txt 或 setup.py 中定义它时,这也有效。
  • 但是如果使用pip install -e .,而不是URL呢?
  • @ankostis pip install -e .[extra] 应该可以工作。如果您使用的是zsh,则需要转义方括号:pip install -e .\[extra\]
  • 另请注意,如果pip 未安装来自setup.py 的要求,可能是因为you have an *egg.info folder next to setup.py
  • 在 Windows 上,Powershell 会抱怨括号。只需将参数放在双引号之间,例如:pip install -e ".[extra]"
【解决方案2】:

重要提示:括号内或括号内不应有空格。 IE。 这将起作用: -e ".[extra1,extra2]"这不会: -e ". [extra1, extra2]" - 甚至作为 requirements.txt 文件中的一行,它并不那么明显。最糟糕的是,当你有空格时,额外的内容会被默默地忽略。

【讨论】:

  • 谢谢,这给我带来了很多麻烦
  • 我还没有在任何地方看到有多个附加功能的文档,但这是一个非常重要的提示!
  • @bastula 你是对的,它似乎没有记录 - 但至少在撰写本文时它是这样的。
【解决方案3】:

这也适用于从whl 文件安装时,例如,您可以这样做:

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

这与文档相差甚远,也不是特别直观。

【讨论】:

    【解决方案4】:

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

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

    【讨论】:

    • 附加项之间不应有空格。此外,使用 git 安装软件包已经包含在接受的答案中,尽管使用 https 而不是 ssh。我想说这个答案最适合作为对已接受答案的编辑,努力积累和构建知识
    猜你喜欢
    • 2019-12-18
    • 2016-08-04
    • 2017-07-25
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    相关资源
    最近更新 更多