with standalone script para make generate create compile app python selenium webdriver pyinstaller

standalone - Programa Python con selenio(webdriver) No funciona como archivo exe único y noconsole(pyinstaller)



python generate executable linux (1)

Creo que arreglé esto al modificar la clase de servicio en el paquete de selenio. No estoy seguro de si esto es un error para el selenio (2.47.3). El código original solo está redireccionando stdout y stderr pero no stdin cuando llama a la función subprocess.Popen .

Modifiqué el código de:

self.process = subprocess.Popen(cmd, stdout=PIPE, stderr=PIPE)

A:

self.process = subprocess.Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE)

Entonces el problema se fue.

El siguiente es mi código python:

## t.py ## from tkinter import messagebox from tkinter import * from selenium import webdriver def clicked(): iedriver = "C://Program Files//Internet Explorer//IEDriverServer.exe" try: driver=webdriver.Ie(iedriver) except Exception as e: messagebox.showerror("Error",e) driver.get(''www.baidu.com'') Top=Tk() Button(Top,text=''Click Me'',command=clicked).pack() Top.mainloop()

Esto funciona bien, pero cuando convierto esto en un solo archivo .exe con PyInstaller (t.spec):

# -*- mode: python -*- block_cipher = None a = Analysis([''D://program//Python//t.py''], pathex=[''D://program//Python''], binaries=None, datas=None, hiddenimports=[], hookspath=None, runtime_hooks=None, excludes=None, win_no_prefer_redirects=None, win_private_assemblies=None, cipher=block_cipher) pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE(pyz, a.scripts, a.binaries, a.zipfiles, a.datas, name=''t'', debug=False, strip=None, upx=False, console=0 , icon=''D://program//Python//logo//t.ico'')

Aparecerá el siguiente error al hacer clic en el botón para ejecutar: Parece que el ejecutable de IEDriver no puede ser reconocido

Cuando cambio la opción "consola = 0" a "consola = 1" en el archivo de especificación, se puede ejecutar IE luego de hacer clic en el botón. ¿Alguna idea de por qué no se puede ejecutar IE cuando se configura "consola = 0"?