2017-10-09 98 views
0

我嘗試了pyinstaller一個與控制檯和一個沒有一個選項。pyinstaller一個文件 - 無控制檯無法正常工作「致命錯誤」

我使用的是Windows 10,Python 3.5.4,Windows Chrome驅動程序2.33和Selnium 3.6.0以及Pyinstaller 3.3。

該一個而不控制檯失敗:

這裏是代碼Test.py

#!python3 
from selenium import webdriver 

# Chrome Proxy options and disable the Yellow Bar about Chrome being controlled by Automated Software. 
chrome_options = webdriver.ChromeOptions() 
chrome_options.add_argument("--disable-infobars") 
chrome_options.add_argument("--disable-logging") 
chrome_options.add_argument("--disable-notifications") 
chrome_options.add_argument("--disable-default-apps") 
chrome_options.add_argument("--disable-extensions") 


# load google.com with the proxy settings and a logging path to a file 
driver = webdriver.Chrome(r"D:\Selenium\chromedriver_win32\chromedriver.exe", chrome_options=chrome_options) 

# maximise window 
driver.maximize_window() 

driver.get("https://www.google.com/mail") 

下面是完全相同的代碼pyinstaller命令:

- 隨着控制檯窗口又名作品:

pyinstaller -F -i favicon.ico Test.py 

- 沒有控制檯窗口失敗

pyinstaller -F --noconsole -i favicon.ico Test.py 

我得到這個錯誤:

*"Failed to execute script error"* 

我不知道爲什麼。

感謝


感謝您的回覆我看了中:

C:\Users\testuser\AppData\Local\Programs\Python\Python35\Lib\site-packages\selenium\webdriver\chrome\service.py 

有沒有爲子在這裏。

我還檢查:

C:\Users\testuer\AppData\Local\Programs\Python\Python35\Lib\site-packages\selenium\webdriver\common\service.py 

在線70我在標準輸入= self.log_file項添加它缺少

try: 
      cmd = [self.path] 
      cmd.extend(self.command_line_args()) 
      self.process = subprocess.Popen(cmd, env=self.env, 
              close_fds=platform.system() != 'Windows', 
              stdin=self.log_file, stdout=self.log_file, stderr=self.log_file) 

與pyinstaller重建:

pyinstaller -F --noconsole -i favicon.ico Test.py 

這創建了exe,但現在控制檯窗口出現....

Python program with selenium(webdriver) Don't Work as single and noconsole exe file (pyinstaller)

+0

也許這可以幫助你:https://stackoverflow.com/questions/33867183/python-program-with-seleniumwebdriver-dont-work-as-single-and-noconsole-exe- f似乎是關於這個話題的...... –

回答

0

經過一番搜索,我發現了完整的解決方案: 首先進入 -

C:\Python35\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) 

現在根本建設你的應用。吡啶是這樣的:

pyinstaller --noconsole --onefile --noupx Yourfile.py 
相關問題