Robot Framework从Python库导入变量报ModuleNotFoundError问题求助
Robot Framework自定义Python库导入项目变量模块报错解决方案
问题原因
Python导入模块时仅会搜索sys.path中包含的路径,你直接使用import Variables.myVariables时,项目根目录未被加入Python的模块搜索路径,因此无法识别Variables包。
运行时ModuleNotFoundError解决方案
方案1:动态添加项目根目录到搜索路径(推荐,无环境依赖)
在myLibrary.py的最开头添加如下代码,计算项目根目录并动态加入搜索路径:
import sys from pathlib import Path # 计算项目根目录:当前文件所在的Libraries文件夹的上级目录即为项目根目录 PROJECT_ROOT = Path(__file__).parent.parent.resolve() sys.path.insert(0, str(PROJECT_ROOT)) # 之后再导入变量即可正常识别 import Variables.myVariables
方案2:配置PYTHONPATH环境变量
将项目根目录的绝对路径添加到系统的PYTHONPATH环境变量中:
- Linux/macOS 临时生效:运行用例前执行
export PYTHONPATH=/你的/项目/根目录/绝对路径:$PYTHONPATH - Windows 临时生效:运行用例前执行
set PYTHONPATH=C:\你的\项目\根目录\绝对路径;%PYTHONPATH%
也可以将该环境变量配置为系统永久生效,适配所有运行场景。
方案3:将项目配置为可安装包
在项目根目录新增pyproject.toml配置文件,将项目打包为可安装的Python包,安装到本地环境后即可直接导入所有模块,该方案适合中大型长期维护的项目。
VS Code Robot语言服务器识别问题解决方案
打开项目工作区的.vscode/settings.json文件,添加如下两项配置即可:
{ // 配置Python语法分析的额外搜索路径 "python.analysis.extraPaths": [ "${workspaceFolder}" ], // 配置Robot Framework语言服务器的搜索路径 "robot.pythonpath": [ "${workspaceFolder}" ] }
配置完成后重载VS Code窗口,即可正常识别自定义库的关键字,也不会再报模块不存在的错误。
注意事项
Variables文件夹下只要存在空的__init__.py文件即可被识别为Python包,无需添加额外内容。
内容的提问来源于stack exchange,提问作者Andreas
相关产品推荐
相关产品推荐

