pyinstaller打包selenium报错找不到webdriver

本文探讨了在使用PyInstaller打包Selenium时遇到的'chromedriver.exe'路径问题,通过修复subprocess.Popen和调整Chrome路径解决,重点在于环境变量设置和本地化查找。
摘要由CSDN通过智能技术生成

遇到的情况:

使用pyinstaller -w -F打包selenium
在大部分机器上运行正常 但是少数机器上运行报错
selenium版本:3.141.0

报错内容:

Message: ‘chromedriver.exe’ executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home

关键代码:

chrome_location = './Chrome/chrome.exe'
chrome_path = "./Chrome/chromedriver.exe"
browser = webdriver.Chrome(chrome_path,options=options)

在网上查了许多方法,比如将chromedriver和exe一起打包等等都不管用

后来发现是打包时加了-w参数的话 导致python安装路径下的\selenium\webdriver\common\service.py
里面的subprocess.Popen失效

解决办法:

subprocess.Popen修改为:

self.process = subprocess.Popen(cmd, env=self.env,
                                            close_fds=platform.system() != 'Windows',
                                            # stdout=self.log_file,
                                            # stderr=self.log_file,
                                            stdin=PIPE,
                                            creationflags=134217728,
                                            shell=True,
                                            stdout=subprocess.PIPE,
                                            stderr=subprocess.STDOUT)

再将调用selenium的代码改为

from os import getcwd
chrome_location = getcwd() + '/Chrome/chrome.exe'
chrome_path = getcwd() + "/Chrome/chromedriver.exe"
browser = webdriver.Chrome(chrome_path,options=options)

即可解决

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值