比如将所有包统一管理并设置只读,然后在虚拟环境中安装包是先查找机器上是否有对应的包文件,有的话就软链接,没有就先下载再软链接,这样既能节省空间又能加快安装速度,而且也不会影响 pip 的依赖导出功能。
1 spritecn 353 天前 动手写一个? 逻辑你都理清了 |
2 JKOR 353 天前 项目 A 需要 numpy2.1 ,项目 B 需要 numpy2.2 ,如何同时安装两个版本?不还得放在各个目录下吗 |
3 lxy42 353 天前 via Android uv |
![]() | 4 liangdi 353 天前 那就是和 npm 的逻辑差不多了,py 用的不多,要用的时候一般 miniconda , 可以参考 pnpm 写一个 |
![]() | 5 encro 353 天前 现在就用 rye 。。。 快!!! 智能!!! |
![]() | 6 Leon6868 OP @JKOR #2 设想: A 需要 pytorch 2.4 cuda + numpy 2.1 B 需要 pytorch 2.4 cuda + numpy 2.2 C 需要 pytorch 1.9 cuda + numpy 2.1 + fastapi 当一个包 2GB 还各种不兼容时就能想象复用的好处了( |
![]() | 8 huangyezhufeng 353 天前 @huangyezhufeng 当你体验 1 秒装 torch 的快感之后,就离不开了 |
![]() | 9 ClericPy 353 天前 venv 是不是本来就有参数支持软链接以及继承 base python 的 site packages 现在偶尔用自己写的 zipapps 库打包起来用,你逻辑理清了真可以自己写一个 |
![]() | 10 frostming 353 天前 ![]() |
11 FarmerChillax 353 天前 我投 PDM 一票 |
12 wangee 353 天前 via iPhone 同楼上,uv 如果有管理需求可以用 rye ,稍微比 uv 全一点,底层包管理也是 uv |
![]() | 13 Lychee0 353 天前 投楼上 pdm 一票 不过关于 torch 的话个人更喜欢 poetry 开 local env ,或者干脆不 lock |
![]() | 14 headwindx 353 天前 via iPhone 容器挂载本地目录,用完自动删除。 |
15 zhengfan2016 352 天前 |
16 vincentqiao 348 天前 uv 、pdm 、rye 都可以满足这个场景,感觉功能现在也大同小异,pdm 应该是功能最多的一个,随便选一个喜欢的就可以了 不过,rye 应该快要慢慢融入 uv 了,长期使用的话还是推荐 pdm 或者 uv |
17 Eureka0 348 天前 via iPhone uv 可以实现这个需求,link-mode symlink 就可以了,我现在就是这么用的 |