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

如何修复PyInstaller打包exe后出现的‘No module named pyspark’错误

解决PyInstaller打包PySpark程序出现"No module named pyspark"的问题
  • 手动指定PySpark模块路径
    打包时通过--paths参数将PySpark所在的site-packages路径传给PyInstaller,示例命令:

    pyinstaller --paths=C:\Python\Lib\site-packages\pyspark your_script.py
    

    替换为你实际的PySpark安装路径即可。

  • 添加隐藏导入参数
    PyInstaller可能无法自动检测到PySpark的全部依赖模块,用--hidden-import强制导入核心模块,可按需添加子模块:

    pyinstaller --hidden-import=pyspark --hidden-import=pyspark.sql --hidden-import=pyspark.streaming your_script.py
    
  • 使用.spec文件配置细致打包规则

    1. 先生成基础.spec文件:
      pyinstaller --name your_app your_script.py
      
    2. 打开生成的your_app.spec文件,修改pathex字段加入PySpark路径:
      pathex=['C:\\Python\\Lib\\site-packages\\pyspark', '你的脚本所在目录'],
      
    3. 在hiddenimports列表中补充PySpark相关模块:
      hiddenimports=['pyspark', 'pyspark.sql', 'pyspark.context', 'pyspark.conf'],
      
    4. 基于修改后的.spec文件重新打包:
      pyinstaller your_app.spec
      
  • 确保运行环境的SPARK_HOME变量正确
    打包后的exe运行时需要识别Spark安装目录,目标机器需设置SPARK_HOME环境变量,并将Spark的bin目录加入PATH。若想内置Spark,可将Spark完整目录复制到exe同级目录,在脚本中手动设置:

    import os
    os.environ['SPARK_HOME'] = './spark'  # 假设Spark目录与exe同路径
    
  • 检查版本兼容性
    使用较新版本的PyInstaller(如5.x及以上),同时确保Python版本与PySpark版本匹配(如Python 3.8+对应Spark 3.x系列)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 05:30:49