一. 发现问题

今天在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. JS续

    JS中的事件 [JS中的事件分类] * 1.鼠标事件: * click/dbclick/mouseover/mouseout/mousemove/mousedown/mouseup * * 2.键盘事 ...

  2. 2、hive的基本操作

    1.创建数据库和表 1)创建数据库 hive> CREATE DATABASE IF NOT EXISTS userdb; OK Time taken: 0.252 seconds hive&g ...

  3. webview自动循环播放

    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=&q ...

  4. 001-Spring在代码中获取bean的几种方式

    一.概述 方法一:在初始化时保存ApplicationContext对象 方法二:通过Spring提供的utils类获取ApplicationContext对象 方法三:继承自抽象类Applicati ...

  5. zabbix-2.4.8-1添加MySQL主从状态监控

    1.安装zabbix-agentyum -y install zabbix-2.4.8-1.el6.x86_64.rpm zabbix-agent-2.4.8-1.el6.x86_64.rpm 安装以 ...

  6. corethink功能模块探索开发(六)让这个模块在前台显示

    效果图:(注意右上角) 实现模块的前台显示只需要在模块目录中的Controller目录建立IndexController.class.php,实现index方法.继承HomeController.就能 ...

  7. 曾经遇到的坑------href="#"和href="javascript:void(0);"、href="javascript:;"

    这个是为了 在点击此链接后回到页首,如果你写href="#"那么点击后会回到页首,这样影响操作. <a href="javascript:void 0" ...

  8. loadrunner之脚本篇——将内容保存为参数

    在VuGen中默认使用{}的字符串称为参数 注意:参数必须在双引号中才能用 将字符串保存为参数 lr_save_string("string you want to save", ...

  9. $Android自定义控件在不同状态下的属性

    在写代码的时候,有时候需要控件在不同状态下显示不同的外观,比如在按钮按下的时候要变颜色,EditText获取焦点时候边框要变颜色等.那么下面就来梳理一下这些是怎么实现的. (一)按钮按下时候变颜色 1 ...

  10. 【Head First Servlets and JSP】笔记8:监听者

    1.你不用了解所有监听者API,并不多,一共有8个.不过,你需要知道你能监听什么,以便在需要的时候可以查. 2.关于Session和Cookie.参见JavaWeb学习总结(十二)——Session ...