PyInstaller打包的Python可执行文件无法识别Selenium库问题求助
解决PyInstaller打包Selenium Chrome驱动时的ModuleNotFoundError问题
我之前也碰到过一模一样的情况——IDE里跑起来毫无问题,打包成Windows EXE就报错找不到selenium的Chrome webdriver模块。核心原因其实是PyInstaller的静态代码分析没捕捉到这个动态导入的模块,给你几个靠谱的解决办法:
方法一:直接在打包命令中添加隐藏导入参数
最快捷的方式就是手动告诉PyInstaller要包含这个缺失的模块,把你的打包命令修改为:
pyinstaller --onefile --noconsole --hidden-import selenium.webdriver.chrome.webdriver main.py
--hidden-import参数就是用来强制PyInstaller纳入那些静态分析没发现的依赖模块的。
方法二:使用.spec文件进行更灵活的配置
如果方法一没搞定,或者你需要定制更多打包细节,可以试试用spec文件:
- 先生成默认的spec文件:
pyinstaller --onefile --noconsole main.py - 找到生成的
main.spec文件并打开,在Analysis部分的hiddenimports字段里添加上缺失的模块:a = Analysis( ['main.py'], pathex=[], binaries=[], datas=[], hiddenimports=['selenium.webdriver.chrome.webdriver'], # 在这里添加模块 hookspath=[], hooksconfig={}, runtime_hooks=[], excludes=[], noarchive=False, ) - 用修改后的spec文件重新打包:
pyinstaller main.spec
额外注意事项
- 确保打包时激活的是和PyCharm中完全相同的虚拟环境,避免因为环境不一致导致依赖收集错误。
- 如果你的Selenium版本是4.x以上,确认代码中导入ChromeDriver的方式是正确的(比如
from selenium.webdriver.chrome.service import Service这种新写法),不过既然IDE里能正常运行,这个大概率没问题。
内容的提问来源于stack exchange,提问作者CC PL
相关产品推荐
相关产品推荐

