python腳本打包後無法運行exe文件的解決方案
技術棧win7+python3+selenium
之前有個需求需要實現自動化提流程,為瞭在任何電腦都能實現該功能,特此寫瞭個爬蟲,並將其打包成EXE文件,但在點擊EXE文件是出現瞭問題
點擊exe文件終端小黑窗一閃而過
為瞭看到終端是否有報錯可以在該exe文件目錄下輸入cmd執行終端,並在終端中輸入exe文件名稱如下
回車後會看到報錯
一開始怎麼也無法找到錯誤所致(因為在虛擬環境都有導入selenium包),後來索性直接在windows環境下pip install selenium,成功的解決瞭這個問題。
在自己電腦上終於可以跑成功瞭,但是把文件發到其他電腦上就有另一個問題瞭
Microsoft Windows [版本 10.0.17763.805] (c) 2018 Microsoft Corporation。保留所有權利。 C:\Users\jiazhiqiang-phq\Desktop\OA\dist>msg.exe Traceback (most recent call last): File "site-packages\selenium\webdriver\common\service.py", line 76, in start File "subprocess.py", line 709, in __init__ File "subprocess.py", line 997, in _execute_child FileNotFoundError: [WinError 2] 系統找不到指定的文件。 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "msg.py", line 125, in <module> File "msg.py", line 10, in msg File "site-packages\selenium\webdriver\chrome\webdriver.py", line 73, in __init__ File "site-packages\selenium\webdriver\common\service.py", line 83, in start selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home [5880] Failed to execute script msg
原因是谷歌瀏覽器對應的驅動不同(我本地驅動配置瞭相對應的谷歌驅動的環境變量,所以代碼中並沒有寫驅動的絕對路徑)
解決方法下載對應的驅動放到exe文件同級目錄下就好啦!
補充:使用pyinstaller將python程序打包成exe執行文件時遇到模塊找不到的問題解決辦法
在使用pyinstaller對python程序進行打包後,若打包的主程序中調用自編模塊(有時第三方模塊也會出現同樣問題),運行exe文件出現模塊找不到的問題。
這樣就不能將打包後的exe文件 在其他電腦上運行。
解決辦法是:
打包時加入你自編模塊(或第三方模塊所在文件夾路徑),筆者程序中調用瞭shiyanshi自編模塊,在D:\Pycharm\Program路徑下。
因此打包時需要添加路徑進行打包。
使用pyinstaller ***.py -F -p D:\Pycharm\Program命令在主程序所在文件目錄下進行打包,即可解決模塊找不到的問題。
可以正常運行。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- 關於python selenium 運行時彈出窗口問題
- 詳解PyCharm使用pyQT5進行GUI開發的基本流程
- 關於Pyinstaller閃退的補救措施
- python用pyinstaller封裝exe雙擊後瘋狂閃退解決辦法
- 詳解pycharm的python包opencv(cv2)無代碼提示問題的解決