解决Jupyter Notebook与命令行Python环境不一致导致的ImportError
本文详解解决Jupyter Notebook中模块导入报错而命令行正常的问题。核心原因是两者Python环境不一致。通过sys.executable查看路径,修改kernel.json中的python.exe指向,即可统一环境。另附Mac下jupyter命令找不到时的软链接解决方法。
Jupyter与命令行Python环境不一致问题
该问题通常源于Jupyter Notebook所调用的Python内核与命令提示符(CMD)中使用的Python环境存在差异。
首先,需要在CMD和Jupyter Notebook环境中分别检查当前使用的Python版本及路径。
import sys sys.executable
检查Python路径与修改Kernel配置
若发现两者路径不一致,则需进行下一步操作,即重新配置Jupyter Notebook的Kernel环境。
请在命令行窗口中执行以下命令:
ipython kernelspec list
执行后,系统将列出所有可用的Kernel及其对应的存储文件夹路径。
Available kernels: python2 C:\Users\adrianna\AppData\Roaming\jupyter\kernels\python2 python3 C:\Users\adrianna\AppData\Roaming\jupyter\kernels\python3
找到对应的kernel.json配置文件,将其中的python解释器路径修改为CMD中检测到的正确Python路径。
{
"display_name": "Python 2",
"language": "python",
"argv": [
"D:\\Anaconda2\\python.exe",
"-m",
"ipykernel",
"-f",
"{connection_file}"
]
}
Mac系统下Jupyter命令不可用的解决方案
补充知识:在macOS终端中启动Jupyter时可能遇到的安装问题。
测试系统环境为macOS Catalina。
使用pip3工具安装了jupyter相关组件。
$ pip3 install jupyterlab
然而,当在终端中输入启动命令时:
$ jupyter notebook
系统提示无法找到该命令。
这通常是什么原因导致的呢?
这是由于系统环境变量未包含jupyter的可执行文件目录所致。
此处简要说明一种快速修复该问题的方法。
定位Jupyter安装路径与创建软链接
第一步:确定jupyter的实际安装位置。
打开terminal,输入python3并回车进入交互模式。
$ python3 Python 3.7.2 (v3.7.2:9a3ffc0492, Dec 24 2018, 02:44:43) [Clang 6.0 (clang-600.0.57)] on darwin Type "help", "copyright", "credits" or "license" for more information.
导入sys模块以获取路径信息。
>>> import sys
打印sys.path列表以查看Python搜索路径。
>>> print(sys.path)
终端输出的结果如下所示:
['', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Users/mac/Library/Python/3.7/lib/python/site-packages', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/setuptools-40.8.0-py3.7.egg', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pip-19.0.3-py3.7.egg', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/incremental-17.5.0-py3.7.egg', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/Twisted-18.9.0-py3.7-macosx-10.9-x86_64.egg']
根据输出路径,可定位到jupyter的可执行文件位于:/Library/Frameworks/Python.framework/Versions/3.7/bin/jupyter。
创建一个软链接,将其指向/usr/local/bin/目录,以便系统能全局识别该命令。
$ ln -s /Library/Frameworks/Python.framework/Versions/3.7/bin/jupyter /usr/local/bin/jupyter
再次打开terminal,尝试输入:
$ jupyter notebook
此时即可成功启动Jupyter Notebook。
以上即为解决Jupyter Notebook中ImportError但命令行导入正常问题的完整方案,以及Mac下jupyter命令不可用的快速修复技巧,希望对读者有所帮助。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













