问题
pycharm中部署了conda base环境,项目中 import sklearn
报错,缺少DLL模块 。
但是在Anaconda Prompt中 import sklearn
则成功。
发现
1 在Anaconda Prompt中(base)下用pip install
安装库 ,pycharm中有相应库的增加;
而在(base)下用 conda install
安装库,pycharm无相应库增加;
2 (base)下 conda uninstall scikit-learn
后可以再 pip uninstall scikit-learn
,
说明存在两个scikit-learn包,conda install
和pip install
安装的是不同的地方?环境?包?
3 上网查到,此报错应该是sklearn依赖的包的版本与sklearn所需的版本不同(如过低),或与安装的python版本不对应,或与机子的位数不对应,等原因。解决方法是,卸掉所有sklearn依赖的包,然后安装sklearn(此时sklearn依赖的包也会同时安装,并且是配套版本)。
解决方法
综上,应该是conda install安装的sklearn是好的,pip install安装的sklearn与依赖包不配套。
解决方法1:把conda install到的这个环境给pycharm,然而并不会,因为至结束发现二者使用的解释器是同一个,应该是安到一个环境?
解决方法2:把pip install到的这个环境配好。
故上网查:sklearn依赖的包有:
scipy
numpy (numpy+mkl?)
matplotlib
再在Anaconda Prompt中(base)下,卸载以上三个包,及scikit-learn包,
再pip install scikit-learn
包
在pycharm 中 import scikit-learn
成功!
建议
1 下次项目,决定使用虚拟环境,即选择conda env下的python解释器,
虽然首次安装包需要多安一些包,但是避免系统环境(base)的包的混乱是十分重要的。
2 conda 与 pip
conda是包管理工具,可以管理python及以外的包
而pip是python安装包的工具
再结合上述所说pycharm和pip安装的同步,
故今后安装python的包将统一使用pip install命令。
3 上述遗留的问题仍待探索。