Kaggle Notebook无法导入Python自定义helper.py模块函数问题求助
Kaggle自定义py文件导入失败解决方法
首先确认文件路径:Kaggle用户上传的数据集默认存放在/kaggle/input/路径下,不会默认加入Python搜索路径,也不在Notebook当前工作目录/kaggle/working中,先执行以下代码确认你上传的项目文件夹名称:
import os print(os.listdir('/kaggle/input/'))
假设你上传的项目文件夹名称为my_proj,则helper.py的完整路径为/kaggle/input/my_proj/helper.py,使用以下任意一种方法即可正常导入:
方法1:添加路径到Python搜索目录
将项目文件夹路径加入sys.path,Python就可以找到对应模块:
import sys # 替换路径为你自己的项目文件夹路径 sys.path.append('/kaggle/input/my_proj') import helper biased_dataset = helper.bias_genre_rating_dataset(genre_ratings, 3.2, 2.5)
方法2:复制py文件到当前工作目录
把helper.py复制到Kaggle默认的工作目录,即可直接导入:
import shutil shutil.copy('/kaggle/input/my_proj/helper.py', '/kaggle/working/') import helper biased_dataset = helper.bias_genre_rating_dataset(genre_ratings, 3.2, 2.5)
方法3:动态导入模块
不需要修改全局路径,直接从指定路径加载模块:
import importlib.util spec = importlib.util.spec_from_file_location("helper", "/kaggle/input/my_proj/helper.py") helper = importlib.util.module_from_spec(spec) spec.loader.exec_module(helper) biased_dataset = helper.bias_genre_rating_dataset(genre_ratings, 3.2, 2.5)
注:你遇到的两个报错原因分别为:
- AttributeError是因为你导入的
helper是Python搜索路径中其他同名模块,不是你自己写的helper.py,因此没有自定义函数- ModuleNotFoundError是因为重命名后的helper1.py不在Python搜索路径中,系统无法定位文件
内容的提问来源于stack exchange,提问作者Zeba Lodhi
相关产品推荐
相关产品推荐

