网页搜索框代码,吉林网络营销方式优化,安卓网站开发ui,做网站思想问题描述 在执行某个测试模块时出现提示#xff0c;显示自定义模块data不存在#xff0c;但是在PyCharm下运行正常。错误信息如下#xff1a;
Traceback (most recent call last):File /run/channelnterface-autocase/testcases/test_chanel_detail.py, line 2…问题描述 在执行某个测试模块时出现提示显示自定义模块data不存在但是在PyCharm下运行正常。错误信息如下
Traceback (most recent call last):File /run/channelnterface-autocase/testcases/test_chanel_detail.py, line 2, in modulefrom data.chanel_detail_makecase import *
ModuleNotFoundError: No module named data问题原因
大部分情况下此类问题是由于包的路径没有设置正确所致。通过打印 PyCharm 和命令行下的 sys.path 路径信息对比可以发现以下差异 在当前目录下__init__添加
import sys
print(系统路径,sys.path)分别用PyCharm与命令行执行 PyCharm 包含了当前的目录以及这个代码的根目录前提是需要将这个根目录设置为Sources Root 结果系统路径 [‘D:\uitest\channelnterface-autocase\testcases’, ‘D:\uitest’, ‘D:\uitest\channelnterface-autocase’… 使用Pyhton命令行执行 结果为系统路径 [‘D:\uitest\channelnterface-autocase\testcases’…
在PyCharm设置了Sources Root向系统变量增加了当前目录的根目录所以PyCharm运行时能找到自定义包的。但Pyhton命令行执行时少了添加根目录路径的步骤导致找不到包了。
解决方法
向执行代码中添加根目录路径一般添加在头部
方法一写死绝对路径
import sys
sys.path.append(xxx/xxx/xxx/)方法二使用os获取
os.path.dirname获取目录此处就是获取目录的父目录。如果目录层级更多就需要多加一层 os.path.dirname
import os,sys
project_root os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(project_root)方法三os获取/…/
如果层级更多则需要多加…/ 看起来比方法二更加简洁点
import os,sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)) /../)方法四直接加到环境变量path中
输入以下命令
export PYTHONPATH$PYTHONPATH:/xxx/总结
可能还有其他方法但大体上找不到module的问题大部分是路径变量问题按照这个思路去解决就可以解决大部分类似问题。