当前位置: 代码迷 >> python >> 使用 pyinstaller 摆脱 chromedirver 控制台窗口
  详细解决方案

使用 pyinstaller 摆脱 chromedirver 控制台窗口

热度:67   发布时间:2023-07-16 09:49:29.0

我在无头模式下使用 chromedriver。 我使用 pyinstaller 将脚本编译为一个 exe 文件。 一切正常,除了每次打开 chrome 页面时都会出现以下控制台窗口

我已经尝试了选项--windowed单独, --noconsole单独,-- --windowed--noconsole一起但我仍然得到这个窗口。

我怎样才能摆脱它?

我能够找到以下答案,它对我来说非常有效:

为避免获得 chromedriver 的控制台窗口,请打开文件

Python\\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, stdin=PIPE)

到:

self.process = subprocess.Popen(cmd, stdin=PIPE, stdout=PIPE ,stderr=PIPE, shell=False, creationflags=0x08000000)

我有一个类似的问题,我想分享我如何解决它。 首先,我将描述上下文:

-- 我的脚本运行良好,它可以正常打开 chrome 窗口(不是无头的)。

-- 我使用了 pyinstaller(使用 onefile 和 noconsole 命令)。

-- EXE 可以工作,但每次打开 chrome 窗口时,它也会打开一个控制台窗口,我不记得窗口说了什么,但这不是错误。

-- 我尝试了 Ahmed 发布的解决方案,当天就奏效了。

-- 第二天我在各种电脑上试了EXE,问题又来了。

-- 我推迟了这个问题,因为它不是一个致命的错误,而且我的应用程序中有更重要的问题需要解决。 因此,当我试图解决另一个问题时,我找到了这个答案: : 。

-- 基本上它说更改运行 pyinstaller 时使用的命令的顺序实际上会影响 EXE 文件的打包方式。 (我不确定为什么)。

-- 我运行: pyinstaller --add-binary "chromedriver.exe;." --noconsole --onefile myApp.py

这最终使控制台窗口不再显示。

希望这对任何人都有用。

  相关解决方案