为了账号安全,请及时绑定邮箱和手机立即绑定

从requirement.txt 安装一个新的包而不升级已经满足的依赖

从requirement.txt 安装一个新的包而不升级已经满足的依赖

ITMISS 2021-09-02 15:07:13
我使用requirement.txt 来指定在我的python 应用程序中使用的包依赖项。对于没有内部依赖项的包或使用尚未安装的包依赖项的包,一切似乎都正常。当我尝试安装一个对其他包具有嵌套依赖关系的包并且已经安装了该包的旧版本时,就会出现问题。我知道我可以在手动安装软件包时避免这种情况,但使用pip install -U --no-deps <package_name>. 我想了解如何使用 requirements.txt 来执行此操作,因为部署和需求安装是一个自动化过程。笔记:已经安装的包不是我直接在我的项目中使用的东西,而是同一服务器上不同项目的一部分。提前致谢。
查看完整描述

1 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

依赖解析是一个相当复杂的问题。一个 requirements.txt 只是用可选的版本范围指定你的依赖项。如果您想“锁定”您的传递依赖项(依赖项的依赖项),您必须生成一个 requirements.txt,其中包含您安装的每个包的确切版本,例如pip freeze. 这并不能解决问题,但它至少会在安装时向您指出哪些依赖项冲突,以便您可以手动选择正确的版本。

话虽如此,用于管理应用程序依赖项的新(截至撰写时)官方支持的工具是Pipenv。该工具将为您管理传递依赖项的确切版本(因此您不必手动维护“requirements.txt”),并将您的代码所需的包与系统的其余部分隔离开来。(它使用引擎盖下的 virtualenv 工具来做到这一点)。这种隔离应该可以解决破坏共同定位项目的问题,因为您的项目可以具有与系统其余部分不同版本的库。

(TL;DR 尝试使用 Pipenv,看看您的问题是否消失)


查看完整回答
反对 回复 2021-09-02
  • 1 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信