VS Code本地运行PySpark代码报No Module Found错误求助
问题核心原因
你遇到的ModuleNotFoundError: No module named 'model'报错和Spark配置无关,是Python模块搜索路径的问题:PyCharm默认会自动把项目根目录加入PYTHONPATH,而VS Code默认不会,同时你的启动配置还有路径、解释器选择的问题。
可尝试的解决步骤
- 修正launch.json启动配置
- 你当前配置的
"cwd": "${fileDirname}"会把工作目录设为当前脚本所在的scripts文件夹,如果你要导入的model模块在项目根目录下,自然无法被搜索到,把该项修改为"cwd": "${workspaceFolder}",固定工作目录为项目根目录。 - 移除错误放在launch配置中的
terminal.integrated.env.osx项,这是VS Code全局终端配置,写在启动配置里不会生效,所有环境变量统一放在env字段下。 - 在
env字段中添加PYTHONPATH配置,显式把项目根目录加入Python模块搜索路径,修改后的env参考如下:
"env": { "PYTHONUNBUFFERED": "1", "APP_NAME": "Local Script", "LOGFILE": "output.log", "SPARK_HOME": "/usr/local/spark-3.1.2-bin-hadoop3.2", "JAVA_HOME": "/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/", "PYTHONPATH": "${workspaceFolder}" } - 你当前配置的
- 确认Python解释器选择正确
从报错栈可以看到当前运行用的是Xcode自带的系统Python:/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/bin/python,不是你配置的virtualenv解释器。点击VS Code窗口右下角的Python版本号,在弹出的列表中选择你对应项目的virtualenv解释器即可。 - 验证模块路径配置
如果修改后还是报错,可以在你的sql_query.py开头加入以下调试代码,确认运行时的解释器和搜索路径是否符合预期:
运行后检查输出的解释器路径是否为你的virtualenv路径,import sys print("当前使用的Python解释器路径:", sys.executable) print("Python模块搜索路径:", sys.path)sys.path中是否包含项目根目录。 - 检查模块结构
确认你的model模块所在目录下存在__init__.py文件(Python3.3+的隐式命名空间包可省略,但如果是老版本项目建议保留,避免兼容性问题)。
内容的提问来源于stack exchange,提问作者Evan Zamir
相关产品推荐
相关产品推荐

