簡體   English   中英

如何運行由 Pyinstaller 創建的使用 Webbot 的 Python 程序?

[英]How do I run a Python program created by Pyinstaller that uses Webbot?

我正在嘗試運行一個使用 Webbot 的相當簡單的 Windows Python 3.7 腳本。 該腳本在 Python 的 IDLE 中運行良好,所以我知道我編寫的代碼有效並且沒有任何問題,但我想將它作為 .exe 運行。 然而在用 Pyinstaller 打包后(通常效果很好),雖然 Pyinstaller 進程運行,但實際生成的程序根本不會運行。

我看了一下here,但這並沒有多大幫助。 如果我編譯使用:

pyinstaller file.py

按照建議,當我運行生成的 .exe 時,程序會立即關閉,沒有錯誤消息。

如果我改為嘗試:

pyinstaller --onefile file.py

或者:

pyinstaller file.py -F

然后,當我運行編譯后的 .exe 時,我收到以下消息:

FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\Users\\KimJiwoo\\Appdata\\Local\\Temp\\_MEI51362\\drivers\\chrome_windows.exe'

所以我想我需要 chrome_windows.exe?

我想我可以給程序這個文件,但 _MEI 文件夾是一個臨時目錄,似乎每次都會創建。 我試過把 chrome_windows.exe 放在其他地方,比如 System32 或 file.py 或創建的 .exe 所在的同一目錄,也會發生同樣的錯誤。

所以我想我必須讓這個程序以某種方式看到 chrome_windows.exe 但我不確定如何。 我已經有了

from webbot import Browser

在我的腳本中,但顯然我需要更多的東西。 不確定是什么。

請注意,我並不擔心 Python 程序是否在其自己創建的 .exe 中包含 chrome_windows.exe。 我的意思是,那會很好,但是如果將 chrome_windows.exe 推入運行程序的計算機上的目錄中更簡單的編碼方式,並且程序中的某些內容指向它那里,那也可以. 我覺得這個問題的答案可能很簡單,所以我追求的是最簡單、最優雅的解決方案。

Webbot源中 webdriver 的路徑似乎是driverpath = os.path.join(os.path.split(__file__)[0] , 'drivers{0}{1}'.format(os.path.sep , driverfilename)) (編譯為exe時,文件目錄在TEMP中)。

您可以使用源代碼制作自己的類並更改目錄路徑(github.com/nateshmbhat/webbot/blob/master/webbot/webbot.py)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM