通过PyInstaller打包的Python可执行文件找不到Selenium库

前端开发 2026-07-11

我使用过几版较新的Pyinstaller,总是会得到如下错误(如下所示)。

Application works good in IDE, PyCharm, but EXE file under Windows doesn't run and throw error:

Traceback (most recent call last):
  File "main.py", line 94, in <module>
  File "main.py", line 77, in main
  File "main.py", line 34, in configure_browser
  File "selenium\webdriver\__init__.py", line 95, in __getattr__
  File "importlib\__init__.py", line 88, in import_module
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1324, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'selenium.webdriver.chrome.webdriver'
[PYI-7336:ERROR] Failed to execute script 'main' due to unhandled exception!

我使用的命令是:

pyinstaller --onefile --noconsole main.py

解决方案

PyInstaller通过分析代码及其依赖项中的导入来发现要打包的模块。造成此错误的原因是Selenium最近对某些模块进行了修改,使它们以动态(懒加载)的方式加载。由于这些改动,你需要在创建打包时明确地告诉PyInstaller收集Selenium的所有子模块。你可以使用 --collect-submodules=selenium 参数来实现这一点。

在你的情况下,请把命令改成:

pyinstaller --onefile --noconsole --collect-submodules=selenium main.py
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章