命令行运行python项目文件,报错:ModuleNotFoundError: No module named 'xxxx' 解决办法

Posted testway

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了命令行运行python项目文件,报错:ModuleNotFoundError: No module named 'xxxx' 解决办法相关的知识,希望对你有一定的参考价值。

在pycharm中写好了自动化测试脚本,并能在pycharm中正常运行,由于要考虑到无人值守时能自动执行,执行时就需要脱离pycharm,直接能用命令执行。但是直接用命令执行用例文件:python3 D:\\pycode\\autotest_framework\\case\\run_case.py

结果报错,找不到模块

自动化项目的结构如下:用例run_case.py 和工具类utils下的工具 不在同一个文件夹下面。在脚本中需要导入包如:

from utils.HTMLTestRunner import HTMLTestRunner

 

 分析提示,报错就在import 这里出错。说明在命令中执行用例,没有把项目文件添加为环境变量。需要在代码中把项目文件夹添加为环境变量,添加环境变量思路:

1、找到当前文件run_case.py 的绝对路径 :

current_directory = os.path.dirname(os.path.abspath(__file__))

2、由于测试项目文件夹布局为:run_case.py 的上一级目录才是项目的文件夹,因此需要找到run_case.py 的父文件夹,即项目的根目录

root_path = os.path.abspath(os.path.dirname(current_directory) + os.path.sep + ".")

3、把项目的根目录通过sys.path.append添加为执行时的环境变量

sys.path.append(root_path)

这3步完成后,就可以正常导入项目项目内的包了。就能正常通过命令执行自动化测试了。也就能和jenkins结合在一起了

迎加入自动化测试交流QQ群:143535941 ,进群问题回答:testway 共同讨论自动化问题

以上是关于命令行运行python项目文件,报错:ModuleNotFoundError: No module named 'xxxx' 解决办法的主要内容,如果未能解决你的问题,请参考以下文章

Python 使用Qt 报错:No module named 'PySide2'

python3命令行ImportError: No module named 'xxxx'的问题

Python报错No module named 'cv2'

Python案例篇1-pycharm ModuleNotFoundError: No module named 'xlsxwriter'

mlflow执行import mlflow 报错:ImportError: No module named 'pkg_resources'

第一次体验TensorFlow,运行models-master的例子报错:No module named 'object_detection'