pycharm能运行.ipynb文件的前提是手动配置好python解释器(含jupyter包)和jupyter服务器连接,不自带也不自动安装依赖;需检查解释器中是否安装jupyter/notebook、正确注册内核、选择托管或外部服务器,并确保内核启动链完整。

PyCharm 能直接运行 .ipynb 文件,但前提是 Jupyter 服务已就位——它不自带 Jupyter,也不自动安装依赖,必须手动配好解释器和服务器连接。
确认 Python 解释器里装了 jupyter
PyCharm 不会帮你装 jupyter,只管调用。如果解释器里没这个包,点运行就会报错 ModuleNotFoundError: No module named 'jupyter' 或弹窗提示 “Jupyter not found”。
- 打开
Settings → Project → Python Interpreter - 检查列表里是否有
jupyter、notebook(>=6.5)或jupyterlab;没有就点+安装 - 特别注意:conda 环境要装
conda install jupyter,pip 环境用pip install jupyter notebook;混用可能出问题 - 虚拟环境路径不能含中文或空格,否则 PyCharm 启动内核时可能卡在
Starting kernel...无响应
选择或添加 Jupyter 服务器连接
PyCharm 支持两种连接方式:托管服务器(自动启停)和外部服务器(复用已有进程)。默认行为是“首次执行单元格时自动启动托管服务器”,但这个逻辑依赖配置是否生效。
- 若第一次运行单元格没反应,先去
Tools → Add Jupyter Connection,选IDE-managed server - 托管服务器会绑定到
127.0.0.1:8888或随机端口,端口被占时会失败,可手动指定:Settings → Jupyter → Jupyter Server → Port - 想复用终端已启动的
jupyter notebook --no-browser --port=8889?选External server,填 URLhttp://127.0.0.1:8889和 token(从终端日志复制,形如?token=abc123...) - 服务器配置保存在用户目录下,不是项目级——换电脑或重装 PyCharm 后要重新配
执行单元格时内核卡在 “Starting kernel…”
这不是网络问题,而是内核启动链断裂。常见于 conda 环境未正确识别、或 jupyter 内核注册异常。
- 终端进入你的项目解释器环境,运行
jupyter kernelspec list,确认输出包含类似python3 /path/to/env/share/jupyter/kernels/python3 - 如果缺失,运行
python -m ipykernel install --user --name python3 --display-name "Python (myenv)" - PyCharm 的“Python Interpreter”设置页右上角有
Show all→Show path,核对显示路径是否和which python一致;不一致说明选错了环境 - 重启 PyCharm 后首次运行仍卡住?删掉
~/.jupyter/runtime/下的 json 文件再试(Windows 是%USERPROFILE%\.jupyter\runtime\)
Markdown 单元格不渲染或代码补全失效
这通常不是插件问题,而是 Markdown 插件未启用或 Jupyter 设置开关被关了。
- 进
Settings → Plugins,搜Markdown,确保已启用(PyCharm 2025.1+ 默认开启) - 进
Settings → Languages & Frameworks → Jupyter → Markdown,勾选Auto-render Markdown cells - 代码补全失效多因当前单元格类型误设为
Markdown或Raw;左下角单元格类型下拉框必须是Code - 变量内联预览不显示?检查
Settings → Languages & Frameworks → Jupyter → Variables → Show inline values是否开启
真正麻烦的不是配不配得上,而是配完之后“看起来在跑,其实 kernel 没连上”——比如输出区只显示 [ ] 却没内容、调试器断点不命中、print() 无输出。这时候别猜,直接看 PyCharm 底部状态栏右侧的服务器小图标,点开它,选 Open Jupyter Console,如果 console 也打不开,说明 kernel 根本没活过来。











