Robot Framework导入Python子类遇ModuleNotFoundError求助
解决Robot Framework导入子类时的ModuleNotFoundError问题
常见原因及解决办法
1. 让Python能找到你的myclass.py
Robot Framework调用Python库时,依赖Python的模块搜索路径定位文件。如果myclass.py不在当前运行的工作目录,也不在Python默认搜索路径里,就会触发找不到模块的错误。
临时救急(在测试用例中添加路径):在测试用例开头用
Execute Python Script把myclass.py所在目录加入sys.path:*** Settings *** Library BuiltIn *** Test Cases *** Test Subclass Import Execute Python Script import sys; sys.path.append(r'这里替换成myclass.py所在的实际文件夹路径') Library myclass.MyTestClass1 WITH NAME my my.test1注意把路径换成你实际存放
myclass.py的目录,比如文件在C:\Users\zhouvjie\oran_ta_framework\Libraries,就把路径改成该地址。一劳永逸(设置环境变量):把
myclass.py所在目录添加到系统的PYTHONPATH环境变量中,这样每次运行Python都会自动搜索该目录,无需在测试用例中重复配置。
2. 同目录文件尝试添加相对路径标识
如果myclass.py和你的test.robot在同一个文件夹下,导入时加上./试试:
Library ./myclass.MyTestClass1 WITH NAME my
3. 检查拼写与大小写
别忽略基础错误:
- 确认
myclass.py的文件名拼写无误,注意大小写(Windows系统不区分,但Linux/macOS需严格对应) - 子类
MyTestClass1在代码中的名称与导入时完全一致,避免大小写或笔误问题
4. 转为Python包(适配复杂项目)
如果项目文件较多,可将myclass.py放入单独文件夹(比如命名为test_libraries),并在该文件夹内新建一个空的__init__.py文件,将其转为Python包。之后导入方式改为:
Library test_libraries.myclass.MyTestClass1 WITH NAME my
记得把test_libraries所在目录添加到PYTHONPATH,或使用相对路径导入。
内容的提问来源于stack exchange,提问作者fiveslam
相关产品推荐
相关产品推荐

