セレン(Webdriver)を使用したPythonプログラムシングルおよびnoconsoleのexeファイル(pyinstaller)として動作しない


Answers

Question

以下は私の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()

これは正常に動作しますが、これをPyInstaller(t.spec)を使用して単一の.exeファイルに変換すると、次のようになります。

# -*- 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')

実行するボタンをクリックすると、次のエラーが表示されます。IEDriver実行ファイルが認識されないようです

スペックファイルで "console = 0"を "console = 1"に変更すると、ボタンをクリックしてIEを起動することができます。 "console = 0"が設定されているときIEを実行できない理由は何ですか?