- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个 requirements.txt 文件,以通过 pip 在我的团队中部署一组 Python 包。我已将包本身保存在本地服务器上以尽量减少互联网下载,所以我在一个文件夹中有一堆轮子和 gz/zip 文件。
示例测试.txt:
packages\networkx-2.3.zip
packages\cx_Oracle-7.1.3-cp37-cp37m-win_amd64.whl
packages\SQLAlchemy-1.3.3.tar.gz
对于 whl 文件,pip 会正确地跳过已经安装的包,但对于 gz/zip 文件,它总是会重新安装它们。
这是我通过 pip 运行 test.txt 文件时得到的结果:
λ pip install -r test.txt
Processing c:\users\xxxx\dev\python deploy\packages\networkx-2.3.zip
Processing c:\users\xxxx\dev\python deploy\packages\sqlalchemy-1.3.3.tar.gz
Requirement already satisfied: cx-Oracle==7.1.3 from file:///C:/Users/xxxx/dev/Python%20deploy/packages/cx_Oracle-7.1.3-cp37-cp37m-win_amd64.whl in c:\users\xxxx\appdata\local\programs\python\python37\lib\site-packages (from -r test.txt (line 2)) (7.1.3)
Requirement already satisfied: decorator>=4.3.0 in c:\users\xxxx\appdata\local\programs\python\python37\lib\site-packages (from networkx==2.3->-r test.txt (line 1)) (4.4.0)
Installing collected packages: networkx, SQLAlchemy
Found existing installation: networkx 2.3
Uninstalling networkx-2.3:
Successfully uninstalled networkx-2.3
Running setup.py install for networkx ... done
Found existing installation: SQLAlchemy 1.3.3
Uninstalling SQLAlchemy-1.3.3:
Successfully uninstalled SQLAlchemy-1.3.3
Running setup.py install for SQLAlchemy ... done
Successfully installed SQLAlchemy-1.3.3 networkx-2.3
如何跳过重新安装压缩包?
最佳答案
此行为是预期的,因为 pip
无法将 wheel 文件哈希与已安装的包进行比较。将依赖项规范与 find-links
结合使用,而不是直接指向 test.txt
中的文件路径:
--find-links=packages
networkx==2.3
SQLAlchemy==1.3.3
或者将源 dists 转换为 wheels
$ pip wheel -r test.txt --wheel-dir packages
并在 test.txt
中使用生成的 wheels 代替源 dists:
packages\networkx-2.3-py2.py3-none-any.whl
packages\SQLAlchemy-1.3.3-cp36-cp36m-win_amd64.whl
这也应该会加快安装时间,因为轮子已经预制好了。但是,具有 C 扩展的包(如 SQLAlchemy
在这种情况下)将产生与平台或 python 无关的轮子,例如SQLAlchemy-1.3.3-cp36-cp36m-win_amd64.whl
只能在 64 位 Windows 上为 Python 3.6 安装。如果你的团队成员有不同的工作环境(例如一些使用 WIndows,一些使用 MacOS 等),你需要为每个环境提供预构建的轮子;在这种情况下,坚持使用 find-links
解决方案。
关于python - pip 总是重新安装压缩包,即使已经安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56044520/
我的代码中有以下两种方法。现在,我可以根据以下代码从 URL 读取 JSON。但是,我应该如何修改代码以便获得 gzip 文件,然后将其解码为 JSON? private static String
当我尝试使用 compc 构建 .swc 时,我得到了 Error: could not find a JVM。 我找到了 this站点,然后注释掉 java.home 行。那没有帮助。 我正在尝试从
1、此方法可以下载图片、压缩包、pdf(亲测),应该所有类型的文件都可以下载到本地,可以试一下 ?
我遇到了两个关于 zip 存档的问题,我想在这里分享并请求您的经验: 目录重复如果我在存档中创建两个或多个同名目录(在根目录下),存档包含两个目录(在查看条目时),但每个 ZIP 应用程序(也包括 W
我正在尝试将两个网络请求与 zip 函数结合起来。这两个请求依赖于另一个请求 (getInfoA)。 这是我正在使用的代码: IoC.networkProcessService.getInfoA(wi
我有我下载的文件: 2MGF&DPNA.part1.rar 2MGF&DPNA.part2.rar 2MGF&DPNA.part3.rar 2MGF&DPNA.part4.rar 2MGF&DPNA.
我需要使用 SharpCompress 将文件压缩为 7zip:http://sharpcompress.codeplex.com 我做了如下: using (var archive = ZipArc
.NET ZipArchive 是否允许重命名或移动条目?目前无法更改 ZipArchiveEntry 创建后的名称。看来我必须将原始 ZipArchiveEntry 的流复制到名称更改后的新 Zip
我是第一次尝试 Webpack。我已经将 Gulp 与 Browserify 一起使用了一段时间,并且对它非常满意。在这一点上,我只是在测试几个 Webpack 插件。即 compression-we
我正在尝试找出解决问题的方法;事实上,我正在编写自己的工具,使用 C++ 中的 libzip 来压缩文件来进行保存。 绝对没有完成,但我想做一些测试,然后我做了并从日志中获得了一个“有趣”的错误。 这
目录结构如下 Test app libs commons-codec.jar guava-r09.jar
我创建了一个简单的备份脚本,它只备份某些文件和文件夹。 tar -zcf $DIRECTORY/var.www.tar.gz /var/www tar -zcf $DIRECTORY/developm
我正在使用 Rails 5.2 和 ActiveStorage 让我的用户在我的应用程序中上传文件。我将所有上传的文件显示在一个表格中,我可以选择要下载的文件。选择后,我将能够将它们全部下载到一个 z
我正在使用 Rails 5.2 和 ActiveStorage 让我的用户在我的应用程序中上传文件。我将所有上传的文件显示在一个表格中,我可以选择要下载的文件。选择后,我将能够将它们全部下载到一个 z
我是一名优秀的程序员,十分优秀!