Anaconda datascience环境中已安装prince包,Jupyter仍报ModuleNotFoundError的问题咨询
这个问题我碰到过好几次,本质上大多是Jupyter内核的Python解释器和你安装prince包的Python环境不匹配导致的——哪怕你激活了环境启动Jupyter,内核也可能没正确关联上目标环境。下面一步步来解决:
一、先确认Jupyter内核是否真的绑定到你的datascience环境
首先打开Anaconda Prompt,激活你的datascience环境:
conda activate datascience
然后查看当前环境的Python路径:
where python
你应该会看到路径是C:\Users\salwal\anaconda3\envs\datascience\python.exe。
接下来启动Jupyter Notebook,在一个新的笔记本里运行以下代码,查看内核使用的Python路径:
import sys print(sys.executable)
如果输出的路径不是上面的datascience环境路径,那说明内核没关联对,这就是问题的核心根源。
二、给datascience环境安装并注册Jupyter内核
如果内核没关联对,咱们重新给这个环境安装ipykernel并注册内核:
- 确保在激活的datascience环境中,安装ipykernel:
conda install ipykernel --yes
或者用pip也可以:
pip install ipykernel
- 把这个环境注册为Jupyter的内核:
python -m ipykernel install --user --name=datascience --display-name="Python (datascience)"
这条命令会把datascience环境的Python解释器注册成Jupyter里名为Python (datascience)的内核,方便后续切换识别。
三、确保prince是用环境内的pip安装的
有时候可能不小心用了系统的pip(而非环境里的pip)安装包,哪怕包在目录里,内核的Python还是找不到。重新用环境内的pip安装一次prince:
conda activate datascience pip install prince
安装完成后,可以在环境里直接验证:
python -c "import prince; print('安装成功')"
如果能正常输出,说明包确实在环境里没问题。
四、重启Jupyter并切换正确的内核
关闭所有Jupyter窗口,然后重新激活datascience环境启动Jupyter:
conda activate datascience jupyter notebook
打开你的笔记本,点击顶部的Kernel -> Change Kernel,选择刚才注册的Python (datascience)内核,再运行代码试试,应该就能正常识别prince包了。
为什么会出现这个问题?
简单来说:
- 你激活环境启动Jupyter时,Jupyter本身的进程用的是环境里的Python,但如果之前没给这个环境注册内核,Jupyter可能默认调用base环境或其他环境的内核;
- 哪怕包存在于环境目录中,只要内核的Python解释器不属于这个环境,就找不到对应site-packages里的包;
- 另外,如果你没激活环境就运行
pip install,包可能被装到了系统Python或者base环境里,而非datascience环境,哪怕你看到目录里有文件,也可能是缓存或误放的。
内容的提问来源于stack exchange,提问作者Maths12

