jupyter notebook--import numpy 报错--No module named 'numpy.core._multiarray_umath'--解决办法

在jupyter notebook 中 ,import numpy as np或者导入一些依赖np的包(如tensorflow等)的时候都会报这个错误。

报错原因可能是因为:把python3.6更新到python3.7之后,jupyter notebook还是原来的python3.6的路径。

我尝试了很多种方法,最后解决了这个异常,不过也不是特别清楚是哪一步做对了。所以这两个方法仅供参考。

方法1: 卸载jupyter和notebook然后重装

这时候应该会安装到正确的路径,不过需要注意pip命令也是python3.7的。

方法2:修改路径

缺点是:每次登录jupyter notebook可能都需要修改sys.path的路径。
优点是:灵活,如果再出现某些包的幺蛾子,可以用这个方法灵活的修改路径。

2.1 修改 .bashrc 中PYTHONPATH的路径

在自己名字目录下执行

vim .bashrc

我原来的文件里最后一行是

export PYTHONPATH=$PYTHONPATH:"/home/XXX/.local/lib/python3.6/site-packages"

可以看到里面还是python3.6,把它改成python3.7,之后保存退出。

export PYTHONPATH=$PYTHONPATH:"/home/syh/.local/lib/python3.7/site-packages"

2.2 重新打开jupyter notebook,酌情增删sys.path

可以用以下查看包含的路径

import sys
print(sys.path)

可以用sys.path.remove 删除python3.6的路径(如果包含python3.6的路径的话);
可以用sys.path.append增加python3.7的路径(如果python3.7的路径不全的话)。

说明:
(1)不同人情况可能不一样,我这里是pycharm是可以正常用,jupyter notebook报错,所以我对比二者的sys.path里的路径,来修改jupyter notebook里的路径。

你可能感兴趣的:(Linux,/,Ubuntu)