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

将.py转为.exe后遇ModuleNotFoundError: no module named 'selenium'求助

解决方法

一、先修复依赖安装报错问题

  1. 创建并激活Windows专属虚拟环境
    避免全局Python环境混乱,先隔离出适配Windows Python 3.12的环境:

    # 创建虚拟环境
    python -m venv venv
    # cmd中激活
    venv\Scripts\activate.bat
    # PowerShell中激活(需先允许脚本执行:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser)
    venv\Scripts\Activate.ps1
    
  2. 解决cx_freeze安装失败问题
    cx_freeze安装需要编译依赖,需先安装Microsoft Visual C++ Build Tools:

    • 下载安装包后,勾选「Desktop development with C++」组件(包含MSVC编译器、Windows SDK等),完成安装后重启终端。
    • 回到激活的虚拟环境,重新执行:pip install cx_freeze
  3. 重新生成适配Windows的依赖清单
    不要直接用Ubuntu导出的requirements.txt,在Windows虚拟环境中安装所需包后重新生成:

    # 先安装核心依赖
    pip install selenium
    # 按需安装其他打包工具(如pyinstaller、webdriver-manager)
    pip install pyinstaller webdriver-manager
    # 生成适配当前环境的requirements.txt
    pip freeze > requirements.txt
    

二、解决PyInstaller打包时找不到selenium的问题

  1. 在虚拟环境内执行打包
    确保PyInstaller读取的是当前虚拟环境的包,执行:

    pyinstaller --onefile webScrapingTool.py
    
  2. 强制收集selenium所有模块
    若仍报ModuleNotFoundError,用--collect-all参数强制收集selenium的全部依赖(selenium存在大量动态导入模块,hiddenimports可能覆盖不全):

    pyinstaller --onefile --collect-all selenium webScrapingTool.py
    
  3. 优化webdriver管理(可选但推荐)
    避免打包后需手动放置浏览器驱动,改用webdriver-manager自动适配版本:

    • 先安装:pip install webdriver-manager
    • 修改脚本中的webdriver初始化代码:
      from selenium import webdriver
      from selenium.webdriver.chrome.service import Service
      from webdriver_manager.chrome import ChromeDriverManager
      
      # 自动下载并匹配对应版本的chromedriver
      driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
      

关键注意事项

  • 禁止跨系统打包:Ubuntu上生成的exe无法在Windows运行,必须在Windows系统上用对应版本的Python环境打包。
  • 始终在虚拟环境中操作:避免不同版本包的冲突,保证打包环境的纯净性。

内容的提问来源于stack exchange,提问作者stand-twilight-nag

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 00:47:16