福州男同性做基网站,saas建站工具,天津模板做网站,苏州h5模板建站相信大家在按照一些包的时候经常会碰到版本不兼容#xff0c;但是又不知道版本之间的依赖关系#xff0c;今天给大家介绍一个工具#xff1a;pipdeptree pipdeptree 是一个 Python 包#xff0c;用于查看已安装的 pip 包及其依赖关系。它以树形结构展示包之间的依赖关系但是又不知道版本之间的依赖关系今天给大家介绍一个工具pipdeptree pipdeptree 是一个 Python 包用于查看已安装的 pip 包及其依赖关系。它以树形结构展示包之间的依赖关系帮助开发者理解和管理项目的依赖。
安装 1、安装 使用 pip install pipdeptree 命令来安装。 2、查看所有依赖 使用 pipdeptree 命令可以查看所有已安装包及其依赖关系。 3、查看特定包的依赖 使用 pipdeptree -p package_name 命令可以查看特定包的依赖关系。 4、查看哪些包依赖于特定包 使用 pipdeptree -r -p package_name 命令可以查看哪些包依赖于特定包。 5、生成需求文件 使用 pipdeptree --freeze 命令可以生成类似 pip freeze 的输出但包括依赖关系信息。
举例说明 上图可以看到当我在安装onnx1…13.0的时候出现不兼容问题注意是tensorboard和protobuf版本不兼容的问题当我使用pipdeptree -p onnx的时候会显示与之兼容的tensorboard和protobuf版本。可以看到不管是对于tensorboard还是onnx来说protubuf都是太高这个时候我们降低protobuf的版本。 当我们安装protobuf的版本的时候可以发现与onnx兼容的protobuf的范围protobuf [required: 3.20.2,4, installed: 3.20.3]所以仅仅降低protobuf的范围是不够的这个时候我们降低onnx的版本 当我们把onnx降低到1.12.0的时候再去安装protobuf的时候不会出现兼容报错了。这个时候在pipdeptree -p onnx可以看到protobuf在兼容范围里面。可以看到出现了一个警告
* twisted23.10.0- zope-interface [required: 5, installed: ?]我们可以继续按照上面的过程先看看一个twisted的兼容版本其实这个zope.interface是已经安装了的但是不知道为什么twisted识别不出来我尝试了重新与twisted兼容的zope.interface但是还是不行还是识别不出来 根据以往的经验我感觉可能twisted版本太新了我一查果然是 于是我尝试降低twisted的版本大家可能会有疑问了twisted要降低到哪一个版本我个人经验是要与有关联包发布时间的版本这个是我的个人经验一直挺好使的如果在出现兼容问题安装发布时间相近的包几乎很少出现兼容问题。强烈推荐大家试试。比如twist一直是与zope.interface出现兼容问题我们可以查看一下zope.interface5.5.2的发布时间。 可以看到与zope.interface5.5.2发布时间相近的twisted版本是22.10.0。所以就降低到这个版本。 可以看到再次pipdeptree -p twisted没有出现任何不兼容的警告了。
感悟
当在出现包之间不兼容的时间强烈大家安装发布时间相近的版本发布时间不要相隔太久我在实践过程中就是这样做的几乎每次都完美的解决了。依赖包之间发布时间相差越久越容易出现不兼容的问题。比如上面的twisted和zope.interface发布相差一年就出现兼容问题了。