由于需要用到python中的某个库,因此打开命令行窗口cmd,然后使用pip安装。安装成功后,在cmd中输入python调出python环境,import该模块并使用,可以正常使用。但是打开juypter notebook,import该模块,却显示No module xxx found。出现这种情况的原因是juypter notebook和spyder等都是安装Anaconda时安装的,它们依赖的是Anaconda所配置的库路径,而Anaconda所配置的库路径没有包含当前的python的库路径。import sys并且输出sys.path,便可以看到库路径,如下图所示,可以发现没有所安装的python的\Lib\site-packages(注:安装的外部模块都会安装到该文件夹中),因此import时不会到该路径下寻找模块,因此导致import失败。

  ①搜索相关解决方法,我尝试了一种方法是直接在sys.path这个列表中加入(append)我的python路径和python库路径,分别是:E:\Python\Python36和E:\Python\Python36\Lib\site-packages(注意:这个是我安装的python的路径,你的以你安装python的路径为准)。使用该方法后,再次输出sys.path,可以看到这两条路径被加入,而且import之前不能工作的模块,此时也可以正常使用了。但是这种解决方案没有永久性,当退出之后重新打开该文件运行时,则又会import失败,输出sys.path,发现之前加入的两条路径也不存在了。

  ②再次搜寻解决方法,另一种方法是在环境变量中添加PYTHONPATH变量,然后将上述的python路径和python库路径(E:\Python\Python36和E:\Python\Python36\Lib\site-packages)作为变量值,如下图所示。

(环境变量添加:右键"此(我的)电脑"->点击"属性"->点击左侧“高级系统设置"->点击右下角"环境变量")

  进行以上操作后,在jupyter notebook随便打开或者新建文件,import之前不能工作的模块,都可以正常使用了。输出显示sys.path可以看到,两条路径已经被加入了。而且该方法具有永久性。

环境变量后话:

  之前我对环境变量没有太多理解,后来在多次接触之后对它有了一些更深的认识,这也使得在遇到windows的某些环境依赖问题时可以更快地解决。大多数软件安装时都会将启动软件的.exe所在的bin文件夹路径添加到环境变量中,从而在启动软件时系统能从环境变量中找到该软件的.exe进行启动。

  在我前面安装python时出现了一个问题,就是虽然安装好了python,但是在cmd中输入python却显示python不是可用的命令,即无法启动python。于是根据以往的经验,我查看了环境变量,没有找到python.exe的路径,于是我把该路径添加到环境变量中。再到cmd中输入python,此时就可以正常调出python环境了。之后我又想通过pip安装某些模块时,在cmd中输入pip install xxx,显示pip不是可用的命令。其实道理类似,也是由于pip.exe的路径没有添加到环境变量中。pip.exe位于所安装的python文件夹下的Scripts中,你可以打开看看是否有pip.exe在里面,若没有,则即使添加了路径到环境变量中也无法正常工作的。将Scripts的路径添加到环境变量中后,在cmd中pip也便可以正常运行了。

  通常来说,安装python的时候会自动将对应的这两个路径添加到环境变量中的,而如果你和我一样不幸或者说安装时的一些选择没选好导致出现以上问题,那么通过添加环境变量可以很好地解决问题。

:) PS:这是我写的最快的一篇博客。

Python 在cmd中import模块成功,但是在jupyter notebook中No module xxx found的更多相关文章

  1. 机器学习:Jupyter Notebook中numpy的使用

    一.Jupyter Notebook的魔法命令 # 模块/方法 + ?或者help(模块/方法):查看模块/方法的解释文档: 1)%run # 机械学习中主要应用两个魔法命令:%run.%timeit ...

  2. [转载]Jupyter Notebook中自动补全代码

    原文地址:https://yq.aliyun.com/articles/667928 在公众号之前的文章中,已经介绍了在Jupyter Notebook中设置主题以及输出代码文件到pdf文件中,本文来 ...

  3. Jupyter notebook中的.ipynb文件转换成python的.py文件

    转自:https://blog.csdn.net/wyr_rise/article/details/82656555 Jupyter notebook中.py与.ipynb文件的import问题   ...

  4. 【动手学深度学习】Jupyter notebook中 import mxnet出错

    问题描述 打开d2l-zh目录,使用jupyter notebook打开文件运行,import mxnet 出现无法导入mxnet模块的问题, 但是命令行运行是可以导入mxnet模块的. 原因: 激活 ...

  5. 在jupyter notebook 中同时使用安装不同版本的python内核-从而可以进行切换

    在安装anaconda的时候,默认安装的是python3.6 但是cs231n课程作业是在py2.7环境下运行的.所以需要在jupyter notebook中安装并启用python2.7版本 方法: ...

  6. jupyter notebook中No module named 'tensorflow'

    当我们在jupyter notebook中运行时可能会遇见没有某个包的情况,如下: ---------------------------------------------------------- ...

  7. 解决在jupyter notebook中遇到的ImportError: matplotlib is required for plotting问题

    昨天学习pandas和matplotlib的过程中, 在jupyter notebook遇到ImportError: matplotlib is required for plotting错误, 以下 ...

  8. (数据科学学习手札64)在jupyter notebook中利用kepler.gl进行空间数据可视化

    一.简介 kepler.gl是由Uber开发的进行空间数据可视化的开源工具,是Uber内部进行空间数据可视化的默认工具,通过其面向Python开放的接口包keplergl,我们可以在jupyter n ...

  9. 非线性函数的最小二乘拟合及在Jupyter notebook中输入公式 [原创]

    突然有个想法,能否通过学习一阶RC电路的阶跃响应得到RC电路的结构特征——时间常数τ(即R*C).回答无疑是肯定的,但问题是怎样通过最小二乘法.正规方程,以更多的采样点数来降低信号采集噪声对τ估计值的 ...

随机推荐

  1. 第十三节: EF的三种模式(三) 之 来自数据库的CodeFirst模式

    一. 简介 [来自数据库的Code First模式]实质上并不是CodeFirst模式,而是DBFirst模式的轻量级版本,在该模式中取消了edmx模型和T4模板,直接生成了EF上下文和相应的类,该模 ...

  2. sql注入学习 sqlliab教程 lesson1 (sqlliab搭建教程)

    靶场搭建 小白建议直接用集成环境.推荐laragon (由于这套靶场较早,需要使用php7.0以下环境,安装完php laragon需要在安装php低版本,默认laragon只集成了一个7.0的php ...

  3. Java CAS 比较并且更换值

    原文:Java中CAS详解 作者:jayxu无捷之径 在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁 锁机制存在以下问题: (1)在多线程竞争下,加锁.释放锁会 ...

  4. java8 list和map的forEach

    list forEach示例 public class HelloWorld { public static void main(String[] args) { List<User> l ...

  5. Python3:递归实现输出目录下所有的文件

    今天来整理一下os库中方法的使用,如何输出一个目录下的所有文件? 1.首先介绍几个基本的的方法: 1)os.getcwd()  #返回当前工作目录 2)os.listdir()    #返回一个列表, ...

  6. 51nod 1016 水仙花数

    大水仙花数模板+1…… #include<stdio.h> #include<math.h> #include<queue> #include<vector& ...

  7. bootstrap 解决弹出窗口(modal) 常见问题

    无法使用键盘esc关闭窗口方法: 首先在modal容器的div中增加属性tabindex="-1",其次设置键盘ESC属性keyboard为true: 方法1:使用js打开窗口时 ...

  8. 【原创】大叔经验分享(18)hive2.0以后通过beeline执行sql没有进度信息

    一 问题 在hive1.2中使用hive或者beeline执行sql都有进度信息,但是升级到hive2.0以后,只有hive执行sql还有进度信息,beeline执行sql完全silence,在等待结 ...

  9. Android 键盘键名和键值列表

     电话键 KEYCODE_CALL 拨号键 5 KEYCODE_ENDCALL 挂机键 6 KEYCODE_HOME 按键Home 3 KEYCODE_MENU 菜单键 82 KEYCODE_BACK ...

  10. Sass 增强语法的样式表

    功能: 完全兼容CSS3 相对CSS,扩展了变量.嵌套和mixins 对控制颜色和其他值的非常有用的方法 高级功能,如库的直接控制 良好的格式,自定义输出 语法 对于Sass,有两种语法. 一种叫SC ...