【ipynb】pip安装了包在jupyter中无法引入(已解决)
问题描述
在Pycharm中编辑.ipynb文件时,发现新安装的包在文件中引入时总是显示找不到。

在Pycharm中查看我当前虚拟环境安装的包发现是有seaborn这个包的:

此时我在Pycharm中创了个.py文件来做对照,结果发现导入成功了:

排查问题
现在情况是这样:下载的包只在jupyter中导入失败,在python file中可以成功导入,那么可以初步判断不是当前解释器的问题。
接着我以为对于新安装的包,jupyter的kernel没有更新,这也可能会导致引入失败,所以尝试restart kernel,试了好几次还是不行。
那么应该就不是kernel没更新的问题了,于是在网上搜了一下,发现有类似的情况。
相关问题链接: jupyter无法导入已安装的包?原因竟是它!
他的解决方法对我并没有起作用。但是他提醒了我一点:
jupyter kernelspec list
在Anaconda Prompt中使用这个命令可以查看当前环境的jupyter kernel地址。

一查就发现问题所在了,我用的jupyter kernel不是我在Pycharm中使用的虚拟环境中的。

我在网上搜了一些问题,发现网上说可以从红框的位置修改kernel,但是我这里不知道为什么不行。

我现在使用的环境名为itdk-as,但是在之前某次写课程实验的时候把anconda的默认激活环境修改成了py39。这就是问题所在!!!
经过测试发现,就是因为我设置了anaconda默认激活py39这个环境,导致我在Pycharm中使用jupyter时它直接默认使用py39的kernel.所以现在就只需要修改默认激活环境即可。
如何修改Anaconda默认激活环境(Windows下)

找到Anaconda的安装路径,切换到/Anaconda/Scripts/目录,找到activate.bat文件。

这一行代码的功能就是在anconda启动的时候默认激活py39这个环境。
所以现在改成我要使用的itdk-as即可。

保存修改后,当再次启动Anaconda时,就会默认激活itdk-as这个环境。
问题解决
按照上面修改完Anaconda的默认激活环境后。重启Pycharm,再次运行.ipynb文件:

大功告成!!!
说明:红框中kernel名字变了,这是我在/Anaconda/envs/环境名/share/jupyter/kernels/python3/文件夹下的kernel.json文件中修改了kernel的名字。


更多推荐

所有评论(0)