You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyCharm运行PySpark脚本提示路径找不到且程序挂起,但命令行可正常启动的问题求助

PyCharm运行PySpark程序提示找不到路径且挂起的排查方案

首先先明确你的问题场景和已做的尝试:

我可以通过命令提示符正常启动pyspark,但在PyCharm中运行编写的程序时出现如下错误:

C:\Dev\Python\python.exe C:/Dev/programs/may/test_sparky.py
系统找不到指定的路径。
*.. <程序在此处永久挂起..*

你已经做了这些操作:

  • 通过pip安装了pyspark
  • 先后尝试过Spark 3.0.0+Winutils 3.0.0,目前降级为Spark 3.0.1+winutils.exe 2.7.1
  • 命令行能正常启动pyspark,系统环境变量配置如下:
    • JAVA_HOME: C:\Program Files\Java\jdk1.8.0_331
    • SPARK_HOME: C:\Users\may\AppData\Roaming\Python\Python310\site-packages\pyspark
    • HADOOP_HOME: C:\Dev\Hadoop
    • PATH包含:....C:\Dev\Python;C:\Dev\Python\Scripts; C:\Users\may\AppData\Roaming\Python\Python310\site-packages\pyspark\bin; C:\Program Files\Java\jdk1.8.0_331\bin;C:\Program Files (x86)\sbt\bin; C:\Dev\Hadoop\bin ....

当前版本信息:

  • Spark版本:
C:\Dev>pyspark --version
Welcome to ____ __
 / __/__ ___ _____/ /__
 _\ \ / _ \/ _ `/ __/ '_/
 /___/ .__/\_,_/_/ /_/\_\ version 3.0.1
 /_/
Using Scala version 2.12.10, Java HotSpot(TM) 64-Bit Server VM, 1.8.0_331
Branch HEAD
Compiled by user ubuntu on 2020-08-28T07:36:48Z
Revision 2b147c4cd50da32fe2b4167f97c8142102a0510d
Url https://gitbox.apache.org/repos/asf/spark.git
Type --help for more information.
  • Java版本:
C:\Dev>java -version
java version "1.8.0_331"
Java(TM) SE Runtime Environment (build 1.8.0_331-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.331-b09, mixed mode)

结合这些信息,咱们可以从以下几个方向排查解决:

1. 同步PyCharm的环境变量配置

命令行的环境变量和PyCharm的可能没有同步,即使系统变量配置正确,PyCharm可能没加载到:

  • 打开PyCharm,进入Run -> Edit Configurations
  • 找到你的Python运行配置,切换到Environment variables选项卡
  • 手动添加或确认以下变量:
    • JAVA_HOME: C:\Program Files\Java\jdk1.8.0_331
    • SPARK_HOME: C:\Users\may\AppData\Roaming\Python\Python310\site-packages\pyspark
    • HADOOP_HOME: C:\Dev\Hadoop
    • 确保PATH里包含%SPARK_HOME%\bin和%HADOOP_HOME%\bin(可以直接把这两个路径写进去,避免变量解析问题)
  • 点击Apply后重启PyCharm再尝试运行

2. 确认Winutils的完整性和权限

Winutils是Windows下运行Spark的关键组件,容易出问题:

  • 检查C:\Dev\Hadoop\bin下是否存在winutils.exe,并且是对应2.7.1版本的64位程序(如果你的系统是64位的话)
  • 右键winutils.exe,选择属性 -> 安全,确认当前用户有读取和执行权限
  • 可以手动在命令行执行C:\Dev\Hadoop\bin\winutils.exe ls,看是否能正常运行,没有报错

3. 在代码中手动指定Spark配置参数

避免依赖环境变量,直接在代码里初始化SparkContext时指定必要路径:

from pyspark import SparkConf, SparkContext

# 初始化配置,手动指定路径
conf = SparkConf() \
    .setAppName("TestSpark") \
    .setMaster("local[*]") \
    .set("spark.hadoop.home.dir", "C:/Dev/Hadoop") \
    .set("spark.driver.extraClassPath", "C:/Users/may/AppData/Roaming/Python/Python310/site-packages/pyspark/jars/*")

sc = SparkContext(conf=conf)

# 测试代码
rdd = sc.parallelize([1,2,3,4])
print(rdd.count())

sc.stop()

4. 检查PyCharm的Python解释器配置

确保PyCharm使用的是你安装pyspark的那个Python环境:

  • 进入File -> Settings -> Project: 你的项目名 -> Python Interpreter
  • 确认当前解释器路径是C:\Dev\Python\python.exe(你命令行使用的Python)
  • 查看已安装的包列表,确认pyspark存在且版本是3.0.1

5. 清理缓存并重启

有时候缓存会导致奇怪的问题:

  • 清理PyCharm缓存:File -> Invalidate Caches... -> 勾选Clear file system cache and local history -> 点击Invalidate and Restart
  • 手动删除Spark的临时文件,默认在C:\tmp\spark-*目录,删除后再尝试运行

内容的提问来源于stack exchange,提问作者May

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 21:12:39