“jupyter notebook 不能导入python库但是终端上可以实现”的问题的解决
在使用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.exe和D:\\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库但是终端上可以实现”的问题的解决的更多相关文章
- win10下 Jupyter Notebook不运行python 3怎么办?
Jupyter Notebook不运行python 3怎么办? 内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用 我已经安装了Python 2的Anaco ...
- Anaconda下的 Jupyter Notebook 安装 多python环境
装完 Anaconda 会自带一个pyhon环境 也会自带Jupyter Notebook 可以点击开始中的Jupyter Notebook 打开 浏览器 我这里是 3.x 想要装个2.7 的 ...
- 机器学习(三) Jupyter Notebook, numpy和matplotlib的详细使用 (上)
工欲善其事,必先利其器.在本章,我们将学习和机器学习相关的基础工具的使用:Jupyter Notebook, numpy和matplotlib.大多数教程在讲解机器学习的时候,大量使用这些工具,却不对 ...
- 导入python库失败时的方法
出现以下错误如何解决: e.g. cmd: pip install Django -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host ...
- 对于pod导入第三方库文件终端语言记录
//换成 pod install --verbose --no-repo-update //生成Podfile文件 touch Podfile 加上--verbose --no-repo-update ...
- jupyter notebook中导入其他ipynb文件中的代码
%%capture %run "../Untitled Folder 3/2nn.ipynb" %%capture 抑制输出%run "../Untitled Folde ...
- Python神器 Jupyter Notebook
什么是Jupyter Notebook? 简介 Jupyter Notebook是基于网页的用于交互计算的应用程序.其可被应用于全过程计算:开发.文档编写.运行代码和展示结果. Jupyter Not ...
- Python - 搭建Jupyter notebook环境
1- Jupyter简介 HomePage:https://jupyter.org/ 安装指南:https://jupyter.org/install.html 官方文档:https://jupyte ...
- Python·Jupyter Notebook各种使用方法
PythonJupyter Notebook各种使用方法记录持续更新 一 Jupyter NoteBook的安装 1 新版本Anaconda自带Jupyter 2 老版本Anacodna需自己安装Ju ...
- Python·Jupyter Notebook各种使用方法记录
标签(空格分隔): Python 一 Jupyter NoteBook的安装 1 新版本Anaconda自带Jupyter 2 老版本Anacodna需自己安装Jupyter 二 更改Jupyter ...
随机推荐
- UCOS-III笔记
1.单片机程序分类:轮询程序,前后台程序,多任务系统程序 2.多任务系统伪代码 1 int flag1 = 0; 2 int flag2 = 0; 3 int flag3 = 0; 4 5 int m ...
- 一加5T刷入魔趣
0.准备工作 1.安装adb工具 2.下载twrp 3.5t系统包. 1.解锁bootloader 先进入原版系统,打开开发者选项,允许USB调试,勾选允许OEM解锁,高级重启选项 打开命令行输入: ...
- CUDA的新功能
CUDA 9: 配合Volta架构推出: 1. 新的多线程编程范式.Cooperative Groups 2. 优化算法库 CUDA10: 配合Turing架构推出. 1. 新增了对TensorCor ...
- wpf TreeView右键选中节点弹菜单
<TreeView x:Name="CustomTreeView" Canvas.Top="1" Canvas.Bottom="1" ...
- RSA 非对称加密
原文链接:https://www.jianshu.com/p/d56a72013392 RSA 是一种非对称加密算法,在实际业务中经常使用此算法对数据进行加密.但是它的加解密速度较慢,不太适用于高并发 ...
- gin web 2
routers/router.go package routers import ( "github.com/gin-gonic/gin" "gin-blog/pkg/s ...
- fix: because the volume group on the selected device also consist of physical volumes on other devices
because the volume group on the selected device also consist of physical volumes on other devices 目标 ...
- 增、改生产订单组件BAPI BAPI_ALM_ORDER_MAINTAIN
转载留存 IT_METHODS LIKE BAPI_ALM_ORDER_METHOD处理方法,必选项,存储CREATE CREATETONOTIF CHANGE DELETE RELEAS ...
- cximage第一讲demo.cpp
使用流程可参考: https://blog.csdn.net/wxc237786026/article/details/41171079 BOOL CDemoApp::InitInstance() { ...
- ASP.NET WebAPI 单元测试-UnitTest
xUnit.Net