由于需要用到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. ArcGis Python脚本——根据接图表批量裁切分幅影像

    年前写了一个用渔网工具制作图幅接图表的文章,链接在这里: 使用ArcMap做一个1:5000标准分幅图并编号 本文提供一个使用ArcMap利用接图表图斑裁切一幅影像为多幅的方法. 第一步,将接图表拆分 ...

  2. mui-选项卡+scroll滚动

    详细操作见代码: <!doctype html> <html> <head> <meta charset="UTF-8"> < ...

  3. vue构造函数(根实例化时和组件实例对象选项)参数:选项详解

    实例选项(即传给构造函数的options):数据,DOM,生命周期钩子函数,资源,组合,其他 数据 data 属性能够响应数据变化,当这些数据改变时,视图会进行重渲染. 访问方式: 1.通过 vm.$ ...

  4. 🍓rem单位在Chrome中字体大小异常 🍓

    这是一个很少出现,而一旦出现就让人头疼难当的bug.....网上资料比较少. 解决:https://oss.so/article/87 即为html标签设置-webkit-text-size-adju ...

  5. 设计模式五: 原型模式(Prototype)

    简介 原型模式是属于创建型模式的一种,是通过拷贝原型对象来创建新的对象. 万能的Java超类Object提供了clone()方法来实现对象的拷贝. 可以在以下场景中使用原型模式: 构造函数创建对象成本 ...

  6. Django之Model

    一.字段 常用字段: AutoField:int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. IntergerField:一个 ...

  7. HTTP协议08-请求首部字段

    请求首部字段 请求首部字段是从客户端往服务器端发送请求报文中所使用的字段,用于补充请求的附加信息.客户端信息,对响应内容相关的优先级等内容 1)Accept 通知服务器,用户代理能够处理的媒体类型及媒 ...

  8. Java基础之中间件的初识

    java常用的中间件 一般本地开发的话建议使用tomcat.(小项目,或者是个人开发) linux系统建议使用jetty或apache hpptd 大型的项目或者商业项目就用JBOSS或webloig ...

  9. 如何使用 Lucene 做网站高亮搜索功能?

    现在基本上所有网站都支持搜索功能,现在搜索的工具有很多,比如Solr.Elasticsearch,它们都是基于 Lucene 实现的,各有各的使用场景.Lucene 比较灵活,中小型项目中使用的比较多 ...

  10. 百度地图api文档实现任意两点之间的最短路线规划

    两个点之间的路线是使用“Marker”点连接起来的,目前还没找到改变点颜色的方法,测试过使用setStyle没有效果. <html><head> <meta http-e ...