Python用pickle加载数据集时同目录treeUtil仍报ModuleNotFoundError求助
问题根因
pickle反序列化时会自动加载序列化时对象所属的模块,你当前遇到的ModuleNotFoundError: No module named 'treeUtil'不是pkl文件的问题,是Python模块搜索路径匹配失败导致的:你将treeUtil.py放在了full_ibc子目录下,但Python默认只会搜索你运行脚本时的当前工作目录,不会自动遍历子目录查找模块,所以即使放在pkl同目录也找不到。
解决方案(任选其一即可)
- 方案1(无代码改动):把
full_ibc文件夹里的treeUtil.py直接移动到你当前运行这段Python脚本的根目录下,重新运行即可。 - 方案2(不改动文件结构):在代码最开头插入以下内容,将
full_ibc目录加入Python的模块搜索路径:
import sys sys.path.append("./full_ibc")
你代码中存在的其他可预见错误
你当前的代码在解决模块问题后还会触发其他报错,需要同步修改:
train_test_split的返回值顺序错误,原写法x_train, y_train, x_test, y_test需要改为x_train, x_test, y_train, y_test- 取df列时的列名缺少引号,
df[text]、df[label]需要改为df["text"]、df["label"] - 高版本pandas已弃用
df.append方法,可替换为pd.concat写法避免警告,不影响运行的话可以暂不修改。
内容的提问来源于stack exchange,提问作者TheChicken4452
相关产品推荐
相关产品推荐

