Mac系统下Jupyter Notebook无法导入Python3.6模块但终端可正常导入的问题
解决Jupyter Notebook Python 3.6环境无法导入包的问题
这种情况我之前也碰到过,核心原因大概率是Jupyter的Python 3内核没和你终端里用的Python 3.6对应上——简单说就是Jupyter找的Python环境和你装包的环境不是同一个,自然找不到那些用pip3安装的包。下面一步步给你解决:
1. 先确认环境路径是否一致
首先搞清楚两个环境的Python路径:
- 在终端里输入:
记下输出的Python路径(比如which python3 python3 -m pip --version/usr/local/bin/python3或者~/anaconda3/bin/python3这类)。 - 打开Jupyter Notebook,新建一个Python 3的notebook,输入并运行:
对比这个路径和终端里的路径,如果不一样,就坐实了“内核环境不匹配”的问题。import sys print(sys.executable)
2. 重新安装对应Python 3.6的Jupyter内核
如果路径不一致,咱们手动把Python 3.6的内核注册到Jupyter里:
- 先确保用的是Python 3.6的
pip3,终端输入:python3 -m pip install ipykernel --upgrade - 然后把这个Python 3.6环境添加为Jupyter的内核:
这里python3 -m ipykernel install --user --name python36 --display-name "Python 3.6"--name是内核的内部标识,--display-name是你在Jupyter里看到的名字,方便区分不同版本。
3. 切换内核测试
关闭当前的notebook,重新打开Jupyter,新建notebook时选择Python 3.6这个内核(就是刚才你设置的display-name)。现在再尝试导入之前的包,应该就能正常使用了。
额外建议:用环境管理工具避免版本混乱
Mac系统自带的Python很容易和自己安装的版本冲突,长期来看,推荐用pyenv或者virtualenv来管理不同版本的Python和虚拟环境:
- 比如用
pyenv安装指定版本的Python 3.6,然后创建独立的虚拟环境,在这个环境里安装Jupyter和所有需要的包,这样每个项目的环境都是隔离的,不会再出现“装了包找不到”的问题。
内容的提问来源于stack exchange,提问作者Joe Ganser
相关产品推荐
相关产品推荐

