使用Github仓库代码替换文件后遇ModuleNotFoundError求助
ModuleNotFoundError: No module named 'models' when loading pickle file in TSU_evaluation Frame_map script
我使用Github仓库中的Frame_map模块代码,替换了原仓库的csv和pkl文件为自己生成的文件(生成方式与仓库要求一致),执行命令python Frame_based_map.py -split CS -pkl_path ./data.pkl时触发报错:
Traceback (most recent call last): File "Frame_based_map.py", line 47, in <module> logits = pickle.load(pkl, encoding='latin1') ModuleNotFoundError: No module named 'models'
问题原因
pickle序列化的文件在加载时,需要对应对象的原始类定义存在于当前运行环境中。你的data.pkl文件包含了来自models模块的对象,但当前脚本运行路径下缺少该模块。
解决方法
- 复制原仓库的
models目录到当前脚本的运行目录下,确保Python能找到该模块。 - 或者将原仓库的根目录添加到Python环境变量,临时生效可执行:
也可以在export PYTHONPATH="/path/to/TSU_evaluation:$PYTHONPATH"Frame_based_map.py开头添加以下代码,永久将仓库路径加入运行环境:import sys sys.path.append("/path/to/TSU_evaluation") - 确认生成
data.pkl时使用的models模块与原仓库的结构、代码完全一致,避免因类定义差异导致加载失败。
内容的提问来源于stack exchange,提问作者Megan Darcy
相关产品推荐
相关产品推荐

