【问题标题】:How to stop poetry from uninstalling packages如何阻止诗歌卸载包
【发布时间】:2021-04-14 05:28:49
【问题描述】:

我正在开发一个包,该包具有需要 colorama<0.4.4 的依赖项。我用 pip 安装的其他软件需要colorama==0.4.4。当我运行 poetry install 时,它会完全删除 colorama,这会破坏我使用的软件。

如何防止colorama 删除较新版本的软件包?无论是什么原因导致该依赖项需要旧的 colorama,它都可以很好地与新的依赖项一起使用,以供我使用。我试过了:

  • poetry install --no-dev(没用)
  • pip install colorama==0.4.3(尽管pip show colorama 报告0.4.3,但诗歌仍然说Removing colorama (0.4.4)
  • 我还没有为这个包尝试过专门的 venv,因为它似乎是一个不必要的复杂解决方案

我只需要为我的计算机添加这个例外,所以它不应该是pyproject.toml 文件的一部分。这里的问题是包在技术上与我的用户域冲突;那是因为我安装了特定的不相关程序。开发此软件包的其他人可能不是这些程序的用户,或者可能不在乎他们会破坏。

【问题讨论】:

    标签: python-3.x dependency-management python-poetry


    【解决方案1】:

    如果你使用诗歌,诗歌会管理你的生活。因此,每当它检测到其中的包与pyproject.toml 中声明的依赖项冲突时,它将删除它。这就是它的意图,您无法定义异常。

    这里的问题是包在技术上与我的用户空间冲突;那是因为我安装了一些不相关的程序。

    这正是为什么每个项目都应该有一个 venv 以及诗歌的目标的原因。因此,只需让诗歌使用您定义的依赖项为您的项目创建一个 venv,并且您不会与不相关的包发生任何冲突。

    【讨论】:

    • 感谢您的解释 - 文档并没有向我明确表示诗歌是专门为每个项目使用专用 venv 的,但您所说的有道理。我想每个项目都有一个额外的 venv 的膨胀只是使用诗歌的不可避免的成本。
    猜你喜欢
    • 2018-09-18
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    • 2018-04-26
    • 2018-08-21
    • 1970-01-01
    相关资源
    最近更新 更多