终端能到import模块 解决jupyter notebook无法导入的问题

作者:一颗行走的大白菜 时间:2022-11-19 19:26:29 

这个问题让我查了许多天才解决,为了避免后面的人重复走弯路,记录下来。

问题描述:

我在ubuntu 下编译安装了caffe ,在命令行模式下可以import caffe ,但是在jupyter notebook 中无法import caffe,同样的 我安装的pytorch 也遇到了类似的问题。

解决方案:

首先在打开终端,输入python , 然后import sys,最后执行sys.executable 结果如下图,路径是:/home/jack/anaconda2/bin/python

终端能到import模块 解决jupyter notebook无法导入的问题

第二 在终端 输入 jupyter notebook 后,新建一个ipynb 文件,同样是 import sys,sys.executable,结果输出是:/usr/bin/python 如下图:

终端能到import模块 解决jupyter notebook无法导入的问题

也就是说终端的路径 与jupyter notebook 的路径不一致,需要在终端中输入:


ipython kernelspec list

结果如下

终端能到import模块 解决jupyter notebook无法导入的问题

此时需要进入:/home/jack/.local/share/jupyter/kernels/python2/ 路径在修改 kernel.json 文件将


{
"display_name": "Python 2",
"language": "python",
"argv": [
"/usr/bin/python", % 修改为 :/home/jack/anaconda2/bin/python
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
]
}

文件中的 /usr/bin/python 修改 为/home/jack/anaconda2/bin/python,然后保存重启即可。

补充:Mac在终端正常导入的模块,而在jupyter notebook无法导入的问题

1、在网上搜索了很久,找到了问题的关键,如下:

在jupyter中新建文件输入如下代码,查看目前的编译路径:

终端能到import模块 解决jupyter notebook无法导入的问题

此时发现 jupyter模式下使用的python编译路径与其他模式下的python编译路径是不一样的,这就是为什么无法导入已经安装好的包的原因。

2、出现上述情况的原因

在博客中看到的很多把虚拟环境添加jupyter中的操作流程如下:

1、在base环境中安装ipykernel


pip install ipykernel

2、创建虚拟环境、同时添加ipykernel


conda create -n env_name python=3.5 ipykernel

3、切换到虚拟环境


conda activate env_name

4、将环境写入notebook的ipykernel中


python -m ipykernel install --user --name env_name --display-name "在jupyter中显示的环境名称"

上面的安装过程确实可以实现将虚拟环境加入到juyter中,但是由于是在base中安装的ipykernel,或者忘记激活虚拟环境,或者由于实在base中安装的ipykernel,导致无法在激活的虚拟环境中使用 -m ipykernel,很多人直接在base中执行命令4,导致加入到jupyter的虚拟环境的python编译器使用的是base的,因此导致了上述问题。

解决办法

直接切换至虚拟环境(命令如上),安装ipykernel后,再执行命令4,结果如图所示,可以看到编译路径已经切换至虚拟环境所在路径:

终端能到import模块 解决jupyter notebook无法导入的问题

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

来源:https://blog.csdn.net/qq_34650787/article/details/83304080

标签:jupyter,notebook,导入
0
投稿

猜你喜欢

  • python直接获取API传递回来的参数方法

    2023-11-10 18:01:59
  • 一个无组件上传的ASP代码

    2007-10-09 19:49:00
  • Python通过递归函数输出嵌套列表元素

    2021-03-23 15:36:09
  • 快速解决SQL server 2005孤立用户问题

    2009-01-04 14:02:00
  • 基于Python记录一场2023的烟花

    2022-01-08 19:57:07
  • 一次mysql迁移的方案与踩坑实战记录

    2024-01-13 03:34:42
  • Golang websocket协议使用浅析

    2024-02-07 14:19:28
  • Python extract及contains方法代码实例

    2021-03-29 07:51:25
  • 简析Python的闭包和装饰器

    2021-06-25 03:25:40
  • matplotlib.pyplot画图并导出保存的实例

    2022-10-02 13:32:26
  • python基于K-means聚类算法的图像分割

    2021-03-30 02:29:05
  • Python编程修改MP3文件名称的方法

    2021-10-26 07:56:36
  • Python3如何在Windows和Linux上打包

    2021-04-24 13:50:50
  • 如何确定Oracle数据库表重复的记录

    2010-07-26 13:23:00
  • python使用sorted函数对列表进行排序的方法

    2022-08-19 00:36:46
  • python正则表达式对字符串的查找匹配

    2022-02-21 12:39:50
  • python实现网站微信登录的示例代码

    2021-08-28 21:34:09
  • python3制作捧腹网段子页爬虫

    2021-01-17 20:58:48
  • Python unittest装饰器实现原理及代码

    2022-05-06 22:33:49
  • 一个带采集远程文章内容,保存图片,生成文件等完整的采集功能

    2011-04-02 11:02:00
  • asp之家 网络编程 m.aspxhome.com