希望是那种一键懒汉式的。 比如上传一个 requirements.txt ,给出指定的 x86 、manylinux 版本,给出 python 版本 38 ,然后就可以自动下载所有需要的 whl 包或者是没有 whl 包的下载 source 文件。
我经常在离线容器里碰到各种包依赖缺失的问题,导致在外下载各种包,浪费了很多时间。
希望是那种一键懒汉式的。 比如上传一个 requirements.txt ,给出指定的 x86 、manylinux 版本,给出 python 版本 38 ,然后就可以自动下载所有需要的 whl 包或者是没有 whl 包的下载 source 文件。
我经常在离线容器里碰到各种包依赖缺失的问题,导致在外下载各种包,浪费了很多时间。
1
ruanimal Jul 26, 2024
pip download
|
2
Haku OP @ruanimal 我知道 pip 可以下载包,但是有问题,比如有些包没有指定的平台版本或者只有 source 文件,下载时很容易出错(有些包有哪些版本事先也不一定知道),我现在在尝试用代码来搞这个,想问下有没有已经完成这项工作了的。
|
3
Haku OP 因为工作原因我这边发的电脑和平台的系统架构不一致,无法搞出容器的环境,所以我没法去找个电脑来下载容器所需的包。
|
4
0o0O0o0O0o Jul 26, 2024 既然允许下载文件到离线容器里安装,那应该也可以直接在外面构建安装好依赖的镜像然后离线使用这个镜像吧?跨平台构建见 https://docs.docker.com/build/building/multi-platform/
此外,你的思路用 poetry 应该就可以: poetry init poetry add $(cat requirements.txt) 生成的 poetry.lock 就是跨平台的,解析一下就能拿到所有依赖以及对应版本、平台的 wheel 或者 source https://packaging.python.org/en/latest/specifications/platform-compatibility-tags/#platform-compatibility-tags 个人建议还是跨平台构建吧,至少构建一遍再复制出来 |
5
Haku OP @0o0O0o0O0o 我看看,感谢
|
6
Maerd Jul 31, 2024
不要用 pip,用 poetry 来管理依赖自然就可以了
|