是否可以重新检查与pip一起安装的软件包的依赖关系?假设我们有一个工作环境。然后,其中一个包发生了变化(升级等)。有没有一个命令可以运行,以确保依赖关系树仍然是健全的,没有冲突?
bn31dyow1#
现在python -m pip check应该可以了。似乎早在2016-11-02发布的 pip 9.0.0 中就已添加。
python -m pip check
b4qexyjb2#
它不是pip的一部分,但有一个工具可以使用,称为pip-conflict-checker。只需通过pip安装它并运行pipconflictchecker以获取所有冲突的转储。pipdeptree也可以在这里提供帮助。您可能还对阅读this文章中有关处理pip依赖问题感兴趣。本文还讨论了我在上面提到的两个工具沿着,以及修复损坏的依赖关系的策略。
pipconflictchecker
erhoui1w3#
在最近的pip版本中,如果您在requirements.txt中指定的依赖项中有任何冲突,则使用pip install -r requirements.txt将失败。
requirements.txt
pip install -r requirements.txt
nmpmafwu4#
就我个人而言,我发现PyPi提供的PIPDEPTREE工作得很好。通过pip install pipdeptree安装它,然后直接从命令行运行它。目前它支持Python 3.8、3.9、3.10、3.11和3.12根据当前环境的大小,可能需要一段时间来解析所有安装的包,但输出(默认为控制台)值得等待。我遇到的唯一问题是,当我第一次运行它时,控制台缓冲区非常小,我无法滚动回输出的开头。这是通过简单地增加控制台缓冲区大小,然后再次运行程序来纠正的。旁注:它不关心Python软件包是如何安装的(即。Conda和/或Pip)。它将解析所有这些,并让您知道问题可能潜伏在哪里。这个简单的Python应用程序让我更容易解决依赖问题显著。以下是PyPi上项目的链接:https://pypi.org/project/pipdeptree/
pip install pipdeptree
4条答案
按热度按时间bn31dyow1#
现在
python -m pip check
应该可以了。似乎早在2016-11-02发布的 pip 9.0.0 中就已添加。
b4qexyjb2#
它不是pip的一部分,但有一个工具可以使用,称为pip-conflict-checker。只需通过pip安装它并运行
pipconflictchecker
以获取所有冲突的转储。pipdeptree也可以在这里提供帮助。您可能还对阅读this文章中有关处理pip依赖问题感兴趣。本文还讨论了我在上面提到的两个工具沿着,以及修复损坏的依赖关系的策略。
erhoui1w3#
在最近的pip版本中,如果您在
requirements.txt
中指定的依赖项中有任何冲突,则使用pip install -r requirements.txt
将失败。nmpmafwu4#
就我个人而言,我发现PyPi提供的PIPDEPTREE工作得很好。
通过
pip install pipdeptree
安装它,然后直接从命令行运行它。目前它支持Python 3.8、3.9、3.10、3.11和3.12根据当前环境的大小,可能需要一段时间来解析所有安装的包,但输出(默认为控制台)值得等待。
我遇到的唯一问题是,当我第一次运行它时,控制台缓冲区非常小,我无法滚动回输出的开头。这是通过简单地增加控制台缓冲区大小,然后再次运行程序来纠正的。
旁注:它不关心Python软件包是如何安装的(即。Conda和/或Pip)。它将解析所有这些,并让您知道问题可能潜伏在哪里。
这个简单的Python应用程序让我更容易解决依赖问题显著。
以下是PyPi上项目的链接:https://pypi.org/project/pipdeptree/