GCP Dataproc提交Python任务时遭遇ModuleNotFoundError求助
解决Dataproc中
ModuleNotFoundError: No module named 'pythonproject'的问题 问题原因
你的压缩包解压后,pythonproject模块目录被嵌套在Python_Proj父目录下,而Dataproc默认不会自动将这个父目录加入Python的搜索路径,导致驱动脚本无法找到目标模块。
修复方案
方案1:调整压缩包结构(推荐)
重新打包时,直接将pythonproject目录作为压缩包的根目录,剔除外层的Python_Proj和.idea这类IDE生成的无关文件。最终压缩包结构应为:
pythonproject/ |--main.py
这样Dataproc解压后,pythonproject会直接出现在任务工作目录中,Python可以自动识别到该模块。
方案2:修改驱动脚本添加路径
如果不想重新打包,可在驱动脚本开头添加代码,将Python_Proj目录手动加入Python搜索路径:
import sys import os sys.path.append(os.path.join(os.getcwd(), 'Python_Proj')) from pythonproject.main import main if __name__ == "__main__": main()
方案3:提交任务时配置PYTHONPATH
在Dataproc提交任务的「Properties」中添加环境变量配置:
- 键:
spark.executorEnv.PYTHONPATH - 值:
$PYTHONPATH:/path/to/Python_Proj
(注:实际路径需根据Dataproc解压后的目录调整,通常为当前工作目录下的Python_Proj)
内容的提问来源于stack exchange,提问作者SofiaNiki
相关产品推荐
相关产品推荐

