使用venv虚拟环境时,编译安装的Python包在其他包安装后从pip list中消失但文件仍存在的问题排查求助
venv虚拟环境时,编译安装的Python包在其他包安装后从pip list中消失但文件仍存在的问题排查求助
各位好,我现在遇到一个奇怪的pip相关问题——不是关于仓库/包本身的问题,而是想搞清楚pip内部可能哪里出了状况。
我正在通过setup.py编译安装几个PyTorch相关的仓库,比如torchvision的setup.py。每个包的setup.py都应该把文件安装到/root/venv/lib/python3.10/site-packages目录下,安装完成后我也确实能看到对应的文件夹。
但现在出现了一个诡异的情况:先安装的packageA(比如xformers)能正常出现在pip list里,但当packageB(比如torchvision)编译安装完成后,packageA就从pip list里消失了,可site-packages里packageA的文件夹还完整存在,这就是我想弄明白的问题。
下面是torchvision还在编译时的pip list输出:
root@844722c6e751:~# pip list Package Version ------------ ------------------------- bitsandbytes 0.45.2 einops 0.8.1 filelock 3.18.0 fsspec 2025.3.0 Jinja2 3.1.6 MarkupSafe 3.0.2 mpmath 1.3.0 networkx 3.4.2 pillow 11.1.0 pip 22.0.2 sympy 1.13.1 torch 2.6.0 xformers 0.0.30+1298453c.d20250326
等torchvision编译完成后几秒,xformers就从列表里消失了,但它的文件夹还在site-packages里,比如下面的目录输出:
root@fc2813de016d:~# ll wooly-client-venv/lib/python3.10/site-packages/ total 396 drwxr-xr-x 1 1000 1000 4096 Mar 26 15:34 ./ drwxr-xr-x 1 1000 1000 4096 Mar 26 14:58 ../ drwxr-xr-x 4 root root 4096 Mar 26 15:33 MarkupSafe-3.0.2-py3.10-linux-aarch64.egg/ drwxr-xr-x 2 root root 4096 Mar 26 15:24 MarkupSafe-3.0.2.dist-info/ drwxr-xr-x 2 root root 4096 Mar 26 14:58 PyYAML-6.0.2.dist-info/ drwxr-xr-x 1 root root 4096 Mar 26 15:24 __pycache__/ drwxr-xr-x 3 1000 1000 4096 Mar 26 14:58 _distutils_hack/ drwxr-xr-x 3 root root 4096 Mar 26 14:58 _yaml/ drwxr-xr-x 9 root root 4096 Mar 26 15:24 bitsandbytes/ drwxr-xr-x 3 root root 4096 Mar 26 15:24 bitsandbytes-0.45.2.dist-info/ -rw-r--r-- 1 1000 1000 152 Mar 26 14:58 distutils-precedence.pth -rw-r--r-- 1 root root 95 Mar 26 15:34 easy-install.pth drwxr-xr-x 3 root root 4096 Mar 26 15:24 filelock/ . . . drwxr-xr-x 43 root root 4096 Mar 26 15:24 sympy/ drwxr-xr-x 5 root root 4096 Mar 26 15:33 sympy-1.13.1-py3.10.egg/ drwxr-xr-x 2 root root 4096 Mar 26 15:24 sympy-1.13.1.dist-info/ drwxr-xr-x 63 root root 4096 Mar 26 15:24 torch/ drwxr-xr-x 2 root root 4096 Mar 26 15:24 torch-2.6.0a0+gitd398019.egg-info/ drwxr-xr-x 11 root root 4096 Mar 26 15:24 torchgen/ drwxr-xr-x 4 root root 4096 Mar 26 15:34 torchvision-0.21.0+7af6987-py3.10-linux-aarch64.egg/ drwxr-xr-x 3 root root 4096 Mar 26 14:58 typing_extensions-4.13.0.dist-info/ -rw-r--r-- 1 root root 171956 Mar 26 14:58 typing_extensions.py drwxr-xr-x 5 root root 4096 Mar 26 14:58 wheel/ drwxr-xr-x 2 root root 4096 Mar 26 14:58 wheel-0.45.1.dist-info/ drwxr-xr-x 4 root root 4096 Mar 26 15:33 xformers-0.0.30+1298453c.d20250326-py3.10-linux-aarch64.egg/ drwxr-xr-x 3 root root 4096 Mar 26 14:58 yaml/
我注意到几个关键点:
- 我是同时运行两个setup.py的,它们几乎同时完成,会不会是pip内部出现了冲突?
- 如果我按顺序逐个安装,就完全没问题,不会出现之前的包被“移除”的情况。
我查了torchvision的输出和脚本,没看到任何会移除其他包、导致它们从pip list中消失的逻辑,但现在就是出现了这个现象,有没有大佬能帮我分析下可能的原因?
备注:内容来源于stack exchange,提问作者NorseGaud
相关产品推荐
相关产品推荐

