一句话总结:
安装版本不一致时会有两个.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