pip uninstall jupyter 删不干净,因其仅卸载顶层元包,不删除 notebook、jupyter-client、ipykernel 等十余个依赖包,易致重装时版本冲突或 importerror;需配合 pip-autoremove jupyter -y 清理依赖链,并手动删除 ~/.jupyter 等配置缓存目录。

pip uninstall jupyter 为什么删不干净
直接运行 pip uninstall jupyter 只会卸载顶层的 jupyter 元包,但不会动它依赖的十几个核心组件(比如 notebook、jupyter-client、ipykernel、jinja2、markupsafe 等)。这些残留包继续存在,就可能导致后续重装时版本冲突、导入失败或启动闪退——尤其是当你遇到 ImportError: cannot import name 'soft_unicode' from 'markupsafe' 这类错误时,基本就是旧版 markupsafe 和新版 jinja2 不兼容造成的。
用 pip-autoremove 彻底清理(Windows/macOS/Linux 通用)
先确保你用的是当前环境的 pip(不是系统全局 pip):
- 激活你的目标环境(如
conda activate base或source venv/bin/activate) - 运行
pip install pip-autoremove;如果报ModuleNotFoundError: No module named 'pip_autoremove',说明安装后没被正确发现,可改用:pip install --force-reinstall git+https://github.com/imba-tjd/pip-autoremove@ups - 再执行:
pip-autoremove jupyter -y - 它会自动列出所有被
jupyter间接依赖的包,并一并卸载
注意:这个命令不会删掉你手动装的其他工具(如 numpy、pandas),只清 jupyter 生态链。
别忘了删配置和缓存目录
卸载包只是第一步。Jupyter 的配置文件、内核注册信息、缓存数据都独立存在,不删它们,重装后可能沿用旧设置导致异常:
- Windows:
C:\Users\用户名\.jupyter和C:\Users\用户名\AppData\Roaming\jupyter - macOS/Linux:
~/.jupyter和~/.local/share/jupyter - 删完后,运行
jupyter kernelspec list应该返回空或只显示系统默认内核;若有残留(如python3之外的旧内核名),用jupyter kernelspec uninstall 名字手动清除
重装时避开 conda/pip 混用陷阱
如果你之前用 conda 装过 jupyter,现在想用 pip 重装,或者反过来,务必先统一包管理器:
- 确认当前环境来源:
conda list jupyter或pip show jupyter,只留一个有输出的 - 推荐方式(尤其对新手):
pip install --upgrade --force-reinstall --no-cache-dir jupyter - 如果要用 conda:
conda install -c conda-forge notebook ipykernel,再运行python -m ipykernel install --user --replace --name python3确保内核注册正确 - 避免在同一个环境里交替执行
conda install jupyter和pip install jupyter,极易引发traitlets或pyzmq版本断裂
重装后验证:jupyter --version 应显示 notebook 版本(如 notebook 7.2.0),然后 jupyter notebook 启动成功且新建 Python 3 笔记本能正常执行单元格——这才是真正干净的重装完成。











