解决python在cmd运行时导入包失败,出现错误信息 "ModuleNotFoundError: No module named ***"

Posted xiaoqi_小七

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决python在cmd运行时导入包失败,出现错误信息 "ModuleNotFoundError: No module named ***"相关的知识,希望对你有一定的参考价值。

1.下图为我的自动化测试工程结构图

 

 我通过运行run.bat批处理文件,调用cmd控制台运行start_run.py来开始我的自动化测试,但是出现如下错误:

大家可能知道我们的工程在IDE(Pycharm)中运行和我们在cmd中运行的路径是不一样的,在pycharm中运行时,

会默认pycharm的目录+我们的工程所在目录为运行目录,而在cmd中运行时,会以我们的工程目录所在目录来运行

而在import包时,会首先从pythonPATH的环境变量中来查看包,如果没有你的PYTHONPATH中所包含的目录没有

工程目录的根目录,那么你在导入不是同一个目录下的其他工程中的包时会出现import错误

解决方法:在你运行的文件中将你的工程目录加入到PYTHONPATH中,具体方法如下:

 import os,sys

sys.path.append("path")  //path为你的工程根目录的绝对路径

 

如果此时你运行时依然报错,请先检查是否将根目录加入到了PYTHONPATH中,方法为:

import os

PATH = os.environ

for key in PATH:

  print(key,PATH[key])

如果目录中包含你所在的工程根目录,此时你再查看一下你的所有的目录下是否包含__init__文件,

当我们导入另外一个包下的模块时,首先需要判断这个包是否为python包,而__init__文件就是

用来证明这个目录是一个python包的目录!

 

而我在按照网上的一些操作完成后,发现我依然运行失败,此时我发现我的根目录下也有一个__init__文件

而我删除了该文件之后,运行一切正常,我也不知道具体的原因,感觉有点奇怪!

以上是关于解决python在cmd运行时导入包失败,出现错误信息 "ModuleNotFoundError: No module named ***"的主要内容,如果未能解决你的问题,请参考以下文章

多次出现“导入桥接头失败”错误

需要 SOAP - Node JS 包失败并在 AWS Lambda 中出现导入错误

Scapy 安装在 osx 上失败,并出现 dnet 导入错误

import bcrypt 在 anaconda cmd 上失败并抛出错误“无法导入 _bcrpyt”但适用于 windows cmd?

出现错误:DLL 加载失败:操作系统无法运行 %1 - Python 2.7;报废模块;导入密码学

pycharm导入同一文件夹中.py出现错误的解决方案