因为需要使用sklearn,去做一些数据分析,所以使用conda命令进行安装
conda install scikit-learn
在安装完成之后,导入,并使用拟合优度R2函数评估,发生如下报错;
import sklearn as sk
r2 = sk.metrics.r2_score(y_list, result)报错:
ImportError: dlopen(/XXXXX用户路径XXXXX/lib/python3.6/sitepackages/scipy/special/
_ufuncs.cpython-36m-darwin.so, 2): Library not loaded: @rpath/libgfortran.3.dylib
Library not loaded: @rpath/_ufuncs.cpython-36m-darwin.so
Reason: image not found
根据翻译,直观来说就是这个 _ufuncs.cpython-36m-darwin.so 库加载失败。
分析1:在提示的XXXXX用户路径XXXXX(每个人安装的路径不一致)的情况下,在对应路径下是能够找到这个库包的,说明并不是库不存在导致的。
分析2:查阅资料后,怀疑是sklearn、numpy、scipy这三个库的版本不一致导致,在多次卸载重装后排出了这个问题(!但是,的确有因为这个原因导致报错的,所以可以尝试一下)
分析3:在重装过程中,发现如下问题!
提示:Path not writable or missing,这是conda的环境文件,是否可写和安装conda时候的用户权限有关,我这边使用的brew,可能在安装时默认的root用户,所以只可以读,不可以写。
sudo chmod 775 /你的路径/.conda/environments.txt
使用该命令,赋予文件写的权限!并重装分析2中的三个库。
至此,问题解决。