Locust脚本导入项目外部模块遇ModuleNotFoundError问题求助
解决Locust导入项目模块的ModuleNotFoundError问题
原因
Locust运行时,Python的模块搜索路径(sys.path)未包含你的项目根目录,导致无法识别Phoenix这类自定义包。其他工具(如behave)默认会将项目根目录加入搜索路径,因此不存在该问题。
解决方案
方法1:手动添加项目路径到sys.path
在Locust测试文件开头加入代码,将项目根目录的绝对路径添加到Python模块搜索路径:
import sys import os # 获取当前文件所在目录的绝对路径,根据项目结构调整层级(比如嵌套目录需多套一层os.path.dirname) project_root = os.path.dirname(os.path.abspath(__file__)) sys.path.append(project_root) # 后续导入语句保持不变 from Phoenix.APIs._Global import generateIlogsToken from locust import HttpUser, task
方法2:设置PYTHONPATH环境变量
运行Locust前,先将项目根目录加入PYTHONPATH:
- Linux/macOS:
export PYTHONPATH=/你的项目根目录绝对路径:$PYTHONPATH locust -f getWalletInfoLocust.py
- Windows(命令提示符):
set PYTHONPATH=C:\你的项目根目录绝对路径;%PYTHONPATH% locust -f getWalletInfoLocust.py
- Windows(PowerShell):
$env:PYTHONPATH = "C:\你的项目根目录绝对路径;$env:PYTHONPATH" locust -f getWalletInfoLocust.py
方法3:将项目根作为Python包(推荐)
在项目根目录下创建空的__init__.py文件,然后切换到项目根目录执行Locust命令:
cd /你的项目根目录绝对路径 locust -f 你的测试文件相对路径/getWalletInfoLocust.py
验证方式
可在测试文件开头添加代码打印搜索路径,确认项目根目录是否已被包含:
import sys print(sys.path)
内容的提问来源于stack exchange,提问作者X.Bovi
相关产品推荐
相关产品推荐

