【问题标题】:How to use setup.py to install dependencies only?如何使用 setup.py 仅安装依赖项?
【发布时间】:2015-06-12 07:01:58
【问题描述】:

我对安装我的包本身不感兴趣,但我有兴趣安装我的包使用的所有依赖项。有没有办法使用setup.py 做到这一点?似乎setup.py 安装了我的包和所有依赖项。

【问题讨论】:

  • 所以,你有依赖于xyz 的包abc,你想安装xyz 但不是abc 对吗?
  • 如果你下载的包有需求文件,就像pip install -r requirements.txt一样简单。

标签: python setup.py


【解决方案1】:

在 pip install 上使用 -e 标志

pip install -e .

【讨论】:

  • 我对此感到困惑 - -e 用于“可编辑模式”,它将执行诸如符号链接依赖项的工作目录之类的操作。在这种情况下,OP 想要“真正地”安装所有东西,而不是正在开发的一个包。这能很好地处理用例吗?
  • @KenWilliams 可编辑模式将“真正地”安装所有内容,除了对于您正在处理的包(这将是“符号链接”,正如您所提到的)。不过,您可能不希望保留此链接 - 这是您后续 pip uninstall 处理的技巧。
【解决方案2】:

我发现以简单的方式可靠地做到这一点的唯一方法是:

pip install . && pip uninstall `python setup.py --name`

【讨论】:

  • 谢谢,很好的回答。一个小建议:pip uninstall --yes,所以它不会提示您(例如在 Dockerfile 中)
  • 这是一个很好的答案!一个小评论是它不适用于 python3,但是很容易适应。
  • @QiLuo 我用这个和python 3,你遇到了什么问题?
  • 在有python2和python3的环境中,我可以使用pip3 install . && pip3 uninstall `python3 setup.py --name`
  • @QiLuo 是的,那只是因为 pip 和 python 在您的环境中显然被称为 pip3python3。在我看来,它们被简单地称为pippython
猜你喜欢
  • 2015-01-10
  • 1970-01-01
  • 2022-01-15
  • 2014-11-03
  • 1970-01-01
  • 2020-09-23
  • 1970-01-01
  • 2014-10-02
  • 2011-01-20
相关资源
最近更新 更多