由于需要用到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. 第六节:深入研究Task实例方法ContinueWith的参数TaskContinuationOptions

    一. 整体说明 揭秘: 该章节的性质和上一个章节类似,也是一个扩展的章节,主要来研究Task类下的实例方法ContinueWith中的参数TaskContinuationOptions. 通过F12查 ...

  2. 前端面试题整理—JavaScript篇(二)

    1.使用js实现一个可持续的动画 2.实现一个可以自由拖动的悬浮框 3.实现一个倒计时效果 4.使用js仿写一个原生下拉列表框 5.创建10个<a>标签,点击的时候弹出对应的序号 6.实现 ...

  3. 解决Ubuntu 17.10设置面板打不开的问题

    问题描述 对于Ubuntu桌面系统我用得不多,最近安装了Ubuntu17.10使用,一直都没遇到什么大的问题,界面风格已经与Windows很相似,总体体验还不错.直到某一天我突然手痒痒把Dock面板从 ...

  4. js检测移动设备并跳转到相关适应页面。

    PS:网页自适应的方式有多种.有通过CSS样式表来实现自适应(主流),也有通过显示不同的页面来实现的方式. 下面代码是记录通过判断设备特征来跳转到相关的页面的方法. 实现要求: 当手机,平板访问 a. ...

  5. 代码,java_web

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. Permission denied的解决办法

    在运行TensorFlow Example的mnist_dataset_intro时出现了Permission denied的问题,这一看就是权限问题. 解决的办法: $ sudo chmod -R ...

  7. Studio 5000指令IN_OUT管脚实现西门子风格

    习惯了西门子博途编辑风格的同学,乍一看到Studio 5000的编辑界面,一时不适应,尤其是功能块或指令的IN和OUT管脚在一起,不好分辨,本文简单几步搞定,实现像西门子IN和OUT分左右显示风格. ...

  8. 牛牛与数组 (简单dp)

    题目链接 这种题一看就是dp啊,dp[i][j]表示第i位放j的方案数,转移方程为dp[i][j]=dp[i-1][k]{k<=i||k%i!=0},当然我们可以三层循环来找,但数据显然会超时, ...

  9. codeblocks1712设置中文

    下载汉化包:百度网盘,密码:7rrz 下载后放到安装目录:D:\Program Files (x86)\CodeBlocks\share\CodeBlocks\locale\zh_CN(根据个人安装目 ...

  10. Centos6.X搭建Squid为YUM做代理

    1.在能联网的机器上安装 Squid yum install squid 2.配置squid vi /etc/squid/squid.conf 编辑内容如下: http_port cache_mem ...