Bootstrap

conda、pip同时安装包引起混乱问题剖析

一句话总结

安装版本不一致时会有两个.dist-info文件夹(举例:scapy-2.6.1.dist-info和scapy-2.4.3.dist-info),conda list和pip list依靠这两个文件夹进行包的识别(疑似pip list识别老版本,conda list识别新版本),而包实际代码会被新安装的覆盖掉,致使list中版本和实际使用版本可能会不一致。

下面进行实验:

先用pip安装,后用conda安装

pip install scapy -i https://pypi.tuna.tsinghua.edu.cn/simple

  • 可以看到出现两个文件夹,源码为2.6.1版本,.dist-info为2.6.1,同时conda list 和 pip list 都没有问题。

conda install scapy

再次用conda安装scapy后,源码版本被覆盖,conda list显示2.6.1,pip list 显示2.4.3,发生错误。

先用conda安装,后用pip安装

省流:conda安装后没问题,再用pip安装时由于pip检测到有.dist-info文件夹了,会提示这个包已安装。

最后,查看一下scapy包的位置

可以看到conda安装的包会在pkgs目录下保存一份,以便其他环境安装时使用。

2024.11.24

;