在使用jupyter notebook的过程中,创建了一个新的环境(anaconda中env)后遇到了这样一个问题,就是:

在jupyter notebook上运行程序,中间发现有一个python库未曾下载,因此,我们调出了cmd 命令窗口,把我们需要的python通过pip的形式下载完成,并且在cmd命令窗口上已经实测“已经下载安装成功”,但是jupyter notebook中仍然显示没有下载该模块。

对于该问题,我们通过以下命令查看import是直接从哪个路径中导入python库的

import sys
print(sys.path) # 输出的是一个列表

我们发现输出结果中没有我们创建的新环境的路径,比如:我们创建的环境为XXX,则在下载的Python库一般在anaconda3\env\XXX\lib\site-package,也可以pip install xyz导入一下你要下载的python库,看看它下载到哪了。

因此我们要做的就是把这个路径加入到sys.path中,也就是sys.path.append("anaconda3\env\XXX\lib\site-package")

++++++++++++++++++++++手动分割线+++++++++

上述提供的方法有一个缺点,就是:

对于每次终端下启动的jupyter notebook,我们都需进行上述操作来解决我们的问题,不存在永久解决的,因此,我们希望能有一个永久解决的办法。

分别在电脑终端和jupyter notebook中、不同的anaconda环境下执行下述操作(假设我们有两个anaconda环境,分别为env1和env2)

import sys
sys.executable

我们发现,

在终端下的运行结果,分别是D:\\anaconda3\\envs\\env1\\python.exeD:\\anaconda3\\envs\\env2\\python.exe

在jupyter notebook中的运行结果都是D:\\anaconda3\\envs\\env1\\python.exe

所以,可能是由于sys.executable的问题,使得在env2环境下激活的jupyter notebook中无法导入该环境下通过pip或者conda下载的python库

在终端中直接执行ipython kernelspec list,输出结果为

[TerminalIPythonApp] WARNING | Subcommand `ipython kernelspec` is deprecated and will be removed in future versions.
[TerminalIPythonApp] WARNING | You likely want to use `jupyter kernelspec` in the future
Available kernels:
python3 C:\Users\jluaa\AppData\Roaming\jupyter\kernels\python3

我们打开输出所示的路径的文件,文件内容为:

{
"argv": [
"D:\\anaconda3\\envs\\env1\\python.exe",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "Python 3",
"language": "python"
}

把其中的D:\\anaconda3\\envs\\env1\\python.exe改成D:\\anaconda3\\envs\\env2\\python.exe

那么上面的所说的问题就能完美解决了

################继续分割#############################

用了多日的jupyter notebook,今天突然发现自己陷入了一个误区,就是我们在学习python的时候用的是anaconda,当我们要用python处理不同种类的问题时,显然安装多个版本的anaconda会显得很麻烦,因此,在这里,我们可以通过anaconda的虚拟环境来解决的不同的问题(提一下,就是通过conda create -n env_name python=3.6来创建自己所需的虚拟环境,python版本可以根据所需要配置的python库来确定),那么,对于交互式编程,jupyter notebook必不可少,但是我们jupyter notebook 插件是该安装在什么地方呢?

不知道别人有没有存在这样的理解误区,本人一直把jupyter notebook当作是每个anaconda虚拟环境下必备的插件,也就是说,如果我们要使用该环境下的python库,就必须通过conda activate env_name切换到该虚拟环境下,之后通过jupyter notebook打开交互式页面,进行编程,这或许就会出现上述本文中最初的那个问题(在本环境下打开的jupyter notebook,为何sys.executable显示的确实另一个虚拟环境的路径呢?),而且我们创建了那么多虚拟环境,为什么jupyter notebook界面上的运行内核一直是python3(本人安装的anaconda3)呢?即使我们在虚拟环境env_name中安装的是python=2.7,jupyter notebook的运行内核依旧是python3呢?

所以,jupyter notebook是我们安装的anaconda对应的插件,其内核也就是anaconda所对应的python版本,而对于在anaconda这个大的环境下创建的虚拟环境以及在这个环境下启动的jupyter notebook都是anaconda对应的最原始的那个。如果我们要想在jupyter notebook中切换各个虚拟环境的版本,不需要像前面所说的那样,必须在对应的虚拟换下启动jupyter notebook,我们只需要安装一个插件,就可以直接在jupyter notebook中切换各个运行环境。

插件安装如下:

在终端中输入下面命令,

conda install nb_conda

之后启动jupyter notebook

此时,jupyter notebook主页中的新建选项为



我们就可以在我们已经创建的虚拟环境下创建新文件(图中所示,为jupyter notebook主页右上角新建选项中的子选项,由于图片看不清,俺也解决不了,等解决了在换清晰图像吧!)

如果我们打开已经编辑好的文件,希望通过特定的虚拟环境运行,可以按照如下方式



内容为:打开ipynb文件后,菜单栏中的服务->改变服务->我们要的虚拟环境

这就很完美!

通过这样直接切换虚拟环境的方式,本文章最初的那个问题也就迎刃而解了

“jupyter notebook 不能导入python库但是终端上可以实现”的问题的解决的更多相关文章

  1. win10下 Jupyter Notebook不运行python 3怎么办?

    Jupyter Notebook不运行python 3怎么办? 内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用 我已经安装了Python 2的Anaco ...

  2. Anaconda下的 Jupyter Notebook 安装 多python环境

    装完 Anaconda 会自带一个pyhon环境   也会自带Jupyter Notebook   可以点击开始中的Jupyter Notebook 打开 浏览器 我这里是 3.x 想要装个2.7 的 ...

  3. 机器学习(三) Jupyter Notebook, numpy和matplotlib的详细使用 (上)

    工欲善其事,必先利其器.在本章,我们将学习和机器学习相关的基础工具的使用:Jupyter Notebook, numpy和matplotlib.大多数教程在讲解机器学习的时候,大量使用这些工具,却不对 ...

  4. 导入python库失败时的方法

    出现以下错误如何解决: e.g. cmd:   pip install Django -i  http://mirrors.aliyun.com/pypi/simple/ --trusted-host ...

  5. 对于pod导入第三方库文件终端语言记录

    //换成 pod install --verbose --no-repo-update //生成Podfile文件 touch Podfile 加上--verbose --no-repo-update ...

  6. jupyter notebook中导入其他ipynb文件中的代码

    %%capture %run "../Untitled Folder 3/2nn.ipynb" %%capture 抑制输出%run "../Untitled Folde ...

  7. Python神器 Jupyter Notebook

    什么是Jupyter Notebook? 简介 Jupyter Notebook是基于网页的用于交互计算的应用程序.其可被应用于全过程计算:开发.文档编写.运行代码和展示结果. Jupyter Not ...

  8. Python - 搭建Jupyter notebook环境

    1- Jupyter简介 HomePage:https://jupyter.org/ 安装指南:https://jupyter.org/install.html 官方文档:https://jupyte ...

  9. Python·Jupyter Notebook各种使用方法

    PythonJupyter Notebook各种使用方法记录持续更新 一 Jupyter NoteBook的安装 1 新版本Anaconda自带Jupyter 2 老版本Anacodna需自己安装Ju ...

  10. Python·Jupyter Notebook各种使用方法记录

    标签(空格分隔): Python 一 Jupyter NoteBook的安装 1 新版本Anaconda自带Jupyter 2 老版本Anacodna需自己安装Jupyter 二 更改Jupyter ...

随机推荐

  1. 牛客算法进阶——树形dp

    1. 小G有一个大树(求树的重心) 删除该点后最大连通块的节点数最小 设f[x]表示以x为根的子树大小,那么删除x之后的各子树大小为f[to]和n-f[x] 求max(max(f[to]),n-f[x ...

  2. df -T 和 du 统计的内存不一致

    1.问题原因 客户反馈,df -T 查看到挂载到flash文件的emmc使用了6G左右,但是在flash下看到du -h 只用了2G左右,客户疑问,还有4G去哪儿了? 2.问题怀疑方向 1.怀疑启动阶 ...

  3. linux运维之道学习笔记

    linux常用命令 1.find命令 find / "*.log" 查找/目录下.log结尾的档案 find / -mtime -3 查找/目录下三天内被修改的档案 find / ...

  4. PyQt5弹框定时关闭(python)

    PyQt5使用QMessageBox,可以设置在几秒后关闭  (作者使用的python3) info_box = QMessageBox()# 因为没使用这种方式 QMessageBox.inform ...

  5. Mamba安装

    wget https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-pypy3-Linux-x86_64 ...

  6. kaola

    考拉布局 CSS <style> * { margin: 0; padding: 0; } body { background-color: #f5f5f5; } .clearfix:af ...

  7. Jmeter性能测试入门到项目实战03

    Jmeter性能测试入门到项目实战03 P35 项目业务介绍 1,之前已经对Jmeter所有的知识点做了一个介绍,主要的业务模式是币币交易,就像b2c 2, 3, 4,主要是把登陆和交易这一块做一个并 ...

  8. 看K线学炒股(8.5)

    郑煤机,这只票之前我亏损拿着,昨日理性分析是要打开上涨空间了,毕竟下半年要挖煤,挖煤要煤机,业绩预期就不会差.好了,亏损票,昨日大涨,清了一些,今日大涨八个点清仓.既然分析是打开上涨空间了,那就应该是 ...

  9. entity framework “XXXXX”的“XXXXX”属性不能设置为“null”值

    "T_LICENSE"的"LICENSEFIRSTDATE"属性不能设置为"null"值.必须将该属性设置为类型为"System. ...

  10. VC 运行时库的引用区别 /MD、/MDd 和 /MT、/MTd和DllMain函数

    /MT和/MTd表示采用多线程CRT库的静态lib版本.该选项会在编译时将运行时库以静态lib的形式完全嵌入.该选项生成的可执行文件运行时不需要运行时库dll的参加,会获得轻微的性能提升,但最终生成的 ...