我正在制作需要使用selenium的PyQt4应用程序。在开发过程中一切正常,但是当我通过 pyinstaller* 导出到 单个文件 EXE 且 没有控制台时 ,它会产生以下回溯错误: * __
[WinError6] The handle is invalid
当我将其导出时console = True(在pyinstaller规范文件中),不会发生这种情况,该错误仅在 没有console的情况下 产生。
console = True
产生的错误在以下行中:
driver = webdriver.Chrome(executable_path="chromedriver.exe")
我的规格:
Python: 3.4 体系结构: 64位 Selenium: 3.6.0 Pyinstaller: 3.3 OS: Windows 10
我用谷歌搜索了大约1个小时,但找不到任何解决方法:(
经过大量研究,我找到了解决上述问题的方法。
您只需要做的就是编辑文件: C:\Python34\Lib\site-packages\selenium\webdriver\common\service.py
C:\Python34\Lib\site-packages\selenium\webdriver\common\service.py
更改以下行:
self.process = subprocess.Popen(cmd, env=self.env, close_fds=platform.system() != 'Windows', stdout=self.log_file, stderr=self.log_file)
至:
self.process = subprocess.Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=False, creationflags=0x08000000)
即使在开发过程中以及在部署到EXE之后,这也将起作用。
可能是硒虫。