解决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__文件

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

原文地址:https://www.cnblogs.com/robert-zhang/p/9060365.html