Windows11下VSCode配置Spark内置PySpark遇模块未找到问题求助
解决Windows 11下使用Spark内置PySpark模块的ModuleNotFoundError问题
核心原因
你遇到的问题本质是:Python进程启动后通过dotenv修改PYTHONPATH无法生效——Python的模块搜索路径在进程初始化阶段就已确定,运行时修改环境变量不会同步到模块搜索路径中。
解决步骤
1. 配置系统级环境变量
直接在Windows系统中配置环境变量,确保Python进程启动前就能读取到正确路径:
- 新增
SPARK_HOME变量,值为:C:\spark-3.4.0-bin-hadoop3 - 编辑
PYTHONPATH变量(如果没有则新建),添加以下路径:%SPARK_HOME%\python;%SPARK_HOME%\python\lib\py4j-0.10.9.7-src.zip;%SPARK_HOME%\python\lib\pyspark.zip - 编辑
Path变量,添加:%SPARK_HOME%\bin - 配置完成后必须重启所有终端和VSCode窗口,让环境变量生效。
2. 确认VSCode关联的Python解释器正确
- 按
Ctrl+Shift+P打开命令面板,输入Python: Select Interpreter,选择你使用的Anaconda环境(如base环境)。 - 打开VSCode终端,执行以下命令验证环境变量:
确保输出的路径与你配置的一致。echo %SPARK_HOME% echo %PYTHONPATH%
3. 简化测试代码
移除代码中加载.env的逻辑(系统环境变量已生效,无需再在代码中加载),恢复为最初的测试代码即可。
4. 验证配置有效性
在VSCode终端中执行以下操作:
python
进入Python交互环境后输入:
import pyspark from pyspark.sql import SparkSession
如果没有报错,说明配置成功,此时运行你的测试代码即可正常执行。
注意事项
- 不要通过
pip install pyspark安装PySpark,否则会覆盖Spark内置的版本,导致版本不一致问题。 - 环境变量配置后必须重启终端和VSCode,否则新配置的变量不会被读取。
- 确保路径中的版本号与你的Spark版本匹配(如
py4j-0.10.9.7-src.zip对应Spark 3.4.0)。
内容的提问来源于stack exchange,提问作者Joseph Hwang
相关产品推荐
相关产品推荐

