Win10 64位配置Spark后执行spark-submit报python3找不到错误求助
Windows 环境下 spark-submit 报「找不到python3程序」的排查与解决
问题核心根因
该报错是Windows本地运行PySpark场景下的高频共性问题,触发原因与已配置的SPARK_HOME、HADOOP_HOME、JAVA_HOME路径无关:Spark在启动Python作业时,默认会检索名为python3的可执行程序,但Windows环境下Python安装完成后,默认安装目录下仅会生成python.exe,不会像Linux/macOS环境一样自动生成python3同名可执行文件,因此会直接抛出「系统找不到指定文件」的CreateProcess error=2报错。
分步解决流程
- 第一步:确认本地Python基础配置正常
打开系统终端执行where python,校验返回的路径是否为你实际部署的Python安装路径,确认Python本身已经加入系统PATH环境变量,排除Python本身无法在终端直接调用的基础问题。 - 第二步:按需选择适配方案解决python3找不到的问题
方案1(推荐,无额外文件修改):通过PySpark专属环境变量,直接指定Spark要调用的Python可执行文件路径- 临时生效:在当前运行spark-submit的终端窗口依次执行如下命令,再重新提交作业即可:
示例:如果Python安装在set PYSPARK_PYTHON=你的python.exe完整安装路径 set PYSPARK_DRIVER_PYTHON=你的python.exe完整安装路径C:\Python311\python.exe,对应命令为set PYSPARK_PYTHON=C:\Python311\python.exe set PYSPARK_DRIVER_PYTHON=C:\Python311\python.exe - 永久生效:将上述两个变量添加到系统环境变量列表中,后续所有新开的终端都可以直接运行spark-submit,无需重复设置。
方案2(适配Spark默认检索逻辑):手动生成python3.exe可执行文件
进入Python的安装根目录,复制一份现有的python.exe文件,重命名为python3.exe即可匹配Spark的默认检索规则。注意:如果电脑中安装了多个Python版本,必须确认重命名的文件和你期望给Spark使用的Python版本完全一致,避免出现版本不兼容问题。
- 临时生效:在当前运行spark-submit的终端窗口依次执行如下命令,再重新提交作业即可:
常见排查误区
- 不要反复调整
SPARK_HOME、HADOOP_HOME、JAVA_HOME的路径配置:如果设置完PySpark相关环境变量后作业可以正常提交,说明上述三个环境变量的配置本身没有问题,无需额外修改。 - 路径校验注意事项:如果你的Python安装路径包含中文、空格等特殊字符(比如默认安装在带中文用户名的用户目录下),需要将Python迁移到纯英文、无特殊字符的路径下,否则即使配置了正确的环境变量,Spark仍可能因路径解析失败抛出找不到文件的报错。
内容的提问来源于stack exchange,提问作者Krizalyd
相关产品推荐
相关产品推荐

