可能ananconda一个虚拟环境里存在一个包,而import说没有该包,或者ananconda环境里不存在一个包,但是import又没有问题。
出现该情况的原因:- 第一种,在ananconda虚拟环境里使用conda install,下载的包在虚拟环境中,但是因为里面site.py文件的设置问题,导致虽然是在该虚拟环境中,但是不能使用该环境里的包,使用的是外部python环境里的包,一般在/usr/local/py3/等路径下,此时如果外部环境里没有可用的包,就会import报错;
- 第二种,在ananconda虚拟环境中使用pip install,下在的包全部进入到外部虚拟环境中,但是因为site.py的设置,anaconda虚拟环境中没有该包,但是import却可以正常导入;
如果既有虚拟环境,又有外部环境,就需要注意install包的方式,最好使用conda,下载的包肯定在ananconda中,但是至于到底使用的外部环境的包还是虚拟环境的包,还需要查看site.py里的设置,
site.py文件如何修改:修改两个地方即可:
USER_SITE = “”
USER_BASE = “”
USER_SITE 表示下载的package的存放路径,默认地址为None,也有可能为其他
USER_BASE 表示我们某一个环境下python.exe、pip.exe等脚本存放位置.
例如windows:
USER_SITE = "D:\program_tools\Anaconda3\envs\tensorflow\Lib\site-packages" USER_BASE = "D:\program_tools\Anaconda3\envs\tensorflow\Scripts"
linux稍有不同,pip、python脚本文件在ananconda/bin文件中
注意点:一般出现这种情况,进入环境的方式就会有差异,虽然都是通过ananconda创建的环境,但是可能conda activate 和 source activate 都可以激活,或者一个可以,另一个不可以。



