一. 发现问题

今天在cmd命令行运行一个py文件,本来在pycharm中运行好好的文件,在命令行却报错了,直接提示我:ImportError: No module named 'homeworks'

二. 什么原因

这是因为pycharm中,不光会导入环境变量中sys.path发现的模块,还会导入当前工作目录下的模块。在pycharm中,当前工作目录就是项目目录,能顺利调用相同项目中的模块。但通过命令行启动时,当前工作目录有可能不是项目目录,那么项目中的模块就不会被找到,因此运行时会报错:ImportError: No module named ...

如上图所示,pycharm中,homeworks所在的目录路径D:\python_workshop\python6就是工作目录,所以会导入当前工作目录下的模块

三. 如何解决

方法一:

新建环境变量PYTHONPATH,将模块路径放到环境变量中作为全局变量(推荐使用)

由于我的homeworks包所在目录的路径为:D:\python_workshop\python6

方法二:

在代码中使用sys.path.append方法将homeworks所在目录加入到搜素目录中,切记,这段代码必须放在from ... import ...前面

注意:

选择上面两种方法任意一种都可以,如果修改完代码或者配置完环境变量后,命令行还是报错,这时请退出cmd,重新进入,然后就可以顺利的运行了

参考文章

https://blog.csdn.net/qq_35304570/article/details/78151545

https://blog.csdn.net/hello__Jerry/article/details/79586034

解决:python命令行运行出错 ImportError: No module named ...的更多相关文章

  1. shell脚本命令 运行python文件&python命令行运行python代码

    单独的python文件运行的时候 报错: 在shell脚本中,运行shell脚本命令:在Python命令行中,运行Python代码.然而,“python hello.py”是一个脚本命令,不是pyth ...

  2. python命令行运行在win和Linux系统的不同

    今天,在完成一个小的python习题,习题的主要内容是读取一个帮助模块,并保存到本地文件. 知道是用pydoc进行模块的读取,但是在windows系统下,调用os模块之后,结果总是为空. 核心语句: ...

  3. python程序在命令行执行提示ModuleNotFoundError: No module named 'XXX' 解决方法

    在ide中执行python程序,都已经在默认的项目路径中,所以直接执行是没有问题的.但是在cmd中执行程序,所在路径是python的搜索路径,如果涉及到import引用就会报类似ImportError ...

  4. python 导入模块出错 ImportError: No module named 'request'

    运行程序时报错 ImportError: No module named 'request' 1,第一种情况是真的没有安装requests这个模块,使用 sudo pip install reques ...

  5. python模块以及导入出现ImportError: No module named 'xxx'问题

    python中,每个py文件被称之为模块,每个具有__init__.py文件的目录被称为包.只要模块或者包所在的目录在sys.path中,就可以使用import 模块或import 包来使用如果你要使 ...

  6. 【原创】大叔经验分享(11)python引入模块报错ImportError: No module named pandas numpy

    python应用通常需要一些库,比如numpy.pandas等,安装也很简单,直接通过pip # pip install numpyRequirement already satisfied: num ...

  7. python pip 不能用报错: ImportError: No module named _internal

    使用python pip安装包的时候报错: Traceback (most recent call last): File "/usr/local/bin/pip", line 7 ...

  8. python模块以及导入出现ImportError: No module named ‘xxx‘问题

    python中,每个py文件被称之为模块,每个具有__init__.py文件的目录被称为包.只要模块或者包所在的目录在sys.path中,就可以使用import 模块或import 包来使用如果你要使 ...

  9. python命令行运行py文件找不到模块的解决办法

    问题: 新建了一个项目,目录结构如下: 然后在pycharm中运行glovar是没有问题的,但是在命令行中运行就会提示找不到init模块 这是因为在pycharm中运行的时候,pycharm会自动将项 ...

随机推荐

  1. QSystemSemaphore 系统级信号量

    在之前的一篇文章中,我们讲过了QSemaphore类,其可以用于同步多线程.而今天要讲到的这个类,根据名字就可以猜测到,其可以在整个系统中使用,即它既可以用于多线程,也可以用于多线程.当然,这也意味着 ...

  2. SQLServer中行列转换Pivot UnPivot

    PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P ...

  3. 从B 树、B+ 树、B* 树谈到R 树(转)

      作者:July.weedge.Frankie.编程艺术室出品. 说明:本文从B树开始谈起,然后论述B+树.B*树,最后谈到R 树.其中B树.B+树及B*树部分由weedge完成,R 树部分由Fra ...

  4. 找出n的阶乘末尾有几个零

    原理:因为10由2*5组成,而构成2的因数比5多 所以最终转换成求5的个数 int getNumber(int n) { int count = 0; while(n) { n = n/5; coun ...

  5. new AnnotationConfigApplicationContext(MyBean.class)时,发生了什么?

    当我们run一段代码,像下面这样两行.spring究竟做了什么些,让整个容器准备就绪,交付给用户直接可用的各种特性.为了弄清楚,默默梳理记录下来. public static void main (S ...

  6. 剑指offer 面试4题

    面试4题: 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 解题代码一:二 ...

  7. python之数据的序列化

    参考博客:http://www.cnblogs.com/yyds/p/6563608.html 数据的序列化功能表 json.dumps() 将python数据类型转换为(json)字符串 json. ...

  8. Python基础(16)_面向对象程序设计(类、继承、派生、组合、接口)

    一.面向过程程序设计与面向对象程序设计 面向过程的程序设计:核心是过程,过程就解决问题的步骤,基于该思想设计程序就像是在设计一条流水线,是一种机械式的思维方式 优点:复杂的问题的简单化,流程化 缺点: ...

  9. 面向服务体系架构(SOA)和数据仓库(DW)的思考

    摘要: 当前业界对面向服务体系架构(SOA)和数据仓库(Data Warehouse,DW)都介绍的很多,提出了很多优秀的解决方案,但是一般是把 SOA 和 DW 单独考虑,SOA 和 DW 有着共同 ...

  10. sql两张表关联更新字段

    记录,推荐使用第三种,个人觉得比较好 --第一种写法,之前一直用,没有在意 UPDATE sr_t_TCodeUserReciveCfg SET fUserID=a.fUserID,fImportFl ...