首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何以正确的顺序安装多个.whl文件

如何以正确的顺序安装多个.whl文件
EN

Stack Overflow用户
提问于 2021-01-22 12:00:25
回答 2查看 3.2K关注 0票数 7

最近,我发现自己不得不在没有互联网连接的机器上安装python项目的所有依赖项(20+)。我使用pip download ...获取所有*.whl文件并手动传输它们。直到现在,我才完全理解pip的天才之处,以及它是如何独立计算出依赖树的,并且能够按照正确的顺序安装每个包。例如,一个包依赖于requests包,它本身依赖于urllib3包,依此类推。

我想要一种使用命令控制台或python本身在机器上安装所有这些依赖项的自动化方法,因此我转向StackOverflow并找到了以下解决方案:如何在cmd中安装多个whl文件

几乎所有建议的解决方案都适用于我,但是,它的缺点是必须多次运行它们,直到安装不再失败!这是由于脚本/命令按字母顺序对包进行排序,并试图按顺序安装它们(例如,在requests到位之前尝试安装urllib3 )。

是否有更明智的方法只需按时执行脚本/命令就可以做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-23 18:27:33

这个目录中满是您创建的轮式分发文件,有时被称为舵手。它们通常用于使可重复和/或脱机安装。

从舵手室安装的一种常见方法是:

代码语言:javascript
运行
复制
python -m pip install --no-index --no-deps path/to/wheelhouse/*.whl

如果所有依赖项及其依赖项的所有车轮都在舵轮上,那么安装顺序并不重要,并且不需要连接到任何远程包索引(用于解决依赖关系等)。这就是为什么我们可以使用--no-deps--no-index标志。

参考

撇开

直到现在,我才完全理解pip的天才之处,以及它是如何独立计算出依赖树的,并且能够按照正确的顺序安装每个包。

pip的依赖解析器是https://pypi.org/project/resolvelib/。有一个简单的源代码存储库中的示例演示了如何使用它来解决PyPI上的车轮问题。

票数 7
EN

Stack Overflow用户

发布于 2021-01-22 12:30:25

计算正确安装顺序的最简单方法是根据它们的依赖项对包进行排序。这些主题已经在其他几个问题中单独讨论过了,所以我将链接到它们,而不是重复。“安全安装算法”如下所示:

  1. 读取所有包的元数据。 这个问题解释了如何关注包名和依赖项。
  2. 对它们进行拓扑排序,维基百科文章另一个有用的问题
  3. 根据订单安装软件包。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65844775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档