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

使用PyInstaller打包含Selenium的Python脚本后EXE无法运行求助

解决PyInstaller打包Selenium脚本后无法运行的问题

核心原因

单文件模式下,PyInstaller会将所有依赖解压到系统临时目录(而非exe所在目录),脚本里写的相对路径./driver/geckodriver.exe无法找到实际的驱动文件。

解决方案

1. 修改Python脚本,适配打包后的路径

更新tdistrib_comp.py代码,自动识别开发环境和打包后的运行环境,获取正确的驱动路径:

# -*- coding: utf-8 -*-
import sys
import os
from selenium import webdriver

# 判断是否为打包后的运行环境
if getattr(sys, 'frozen', False):
    # 打包后,依赖文件会被解压到sys._MEIPASS指向的临时目录
    base_dir = sys._MEIPASS
else:
    # 开发环境下,取当前脚本所在目录
    base_dir = os.path.dirname(os.path.abspath(__file__))

# 拼接geckodriver的绝对路径
driver_path = os.path.join(base_dir, 'driver', 'geckodriver.exe')
browser = webdriver.Firefox(executable_path=driver_path)

2. 调整PyInstaller打包命令

确保--add-binary参数的目标路径正确,命令如下:

pyinstaller --onefile .\tdistrib_comp.py --add-binary "driver\geckodriver.exe;driver"

说明:--add-binary的格式是源文件;目标目录,这里会把driver\geckodriver.exe打包后放到临时目录的driver子文件夹下,和脚本里的路径对应。

3. 排查额外问题

  • 驱动与浏览器版本匹配:确认geckodriver的版本和本地安装的Firefox版本一致,版本不兼容会导致启动失败。
  • 查看具体报错:不要双击exe运行,而是打开命令提示符(CMD),切换到exe所在目录后执行exe文件,这样能看到详细的错误提示,方便定位问题。

内容的提问来源于stack exchange,提问作者Christophe C.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 16:20:56