python腳本打包后無法運(yùn)行exe文件的解決方案
技術(shù)棧win7+python3+selenium
之前有個需求需要實(shí)現(xiàn)自動化提流程,為了在任何電腦都能實(shí)現(xiàn)該功能,特此寫了個爬蟲,并將其打包成EXE文件,但在點(diǎn)擊EXE文件是出現(xiàn)了問題
點(diǎn)擊exe文件終端小黑窗一閃而過為了看到終端是否有報(bào)錯可以在該exe文件目錄下輸入cmd執(zhí)行終端,并在終端中輸入exe文件名稱如下
一開始怎么也無法找到錯誤所致(因?yàn)樵谔摂M環(huán)境都有導(dǎo)入selenium包),后來索性直接在windows環(huán)境下pip install selenium,成功的解決了這個問題。
在自己電腦上終于可以跑成功了,但是把文件發(fā)到其他電腦上就有另一個問題了
Microsoft Windows [版本 10.0.17763.805](c) 2018 Microsoft Corporation。保留所有權(quán)利。C:Usersjiazhiqiang-phqDesktopOAdist>msg.exeTraceback (most recent call last): File 'site-packagesseleniumwebdrivercommonservice.py', line 76, in start File 'subprocess.py', line 709, in __init__ File 'subprocess.py', line 997, in _execute_childFileNotFoundError: [WinError 2] 系統(tǒng)找不到指定的文件。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-packagesseleniumwebdriverchromewebdriver.py', line 73, in __init__ File 'site-packagesseleniumwebdrivercommonservice.py', line 83, in startselenium.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
原因是谷歌瀏覽器對應(yīng)的驅(qū)動不同(我本地驅(qū)動配置了相對應(yīng)的谷歌驅(qū)動的環(huán)境變量,所以代碼中并沒有寫驅(qū)動的絕對路徑)
解決方法下載對應(yīng)的驅(qū)動放到exe文件同級目錄下就好啦!
補(bǔ)充:使用pyinstaller將python程序打包成exe執(zhí)行文件時遇到模塊找不到的問題解決辦法
在使用pyinstaller對python程序進(jìn)行打包后,若打包的主程序中調(diào)用自編模塊(有時第三方模塊也會出現(xiàn)同樣問題),運(yùn)行exe文件出現(xiàn)模塊找不到的問題。
這樣就不能將打包后的exe文件 在其他電腦上運(yùn)行。
解決辦法是:打包時加入你自編模塊(或第三方模塊所在文件夾路徑),筆者程序中調(diào)用了shiyanshi自編模塊,在D:PycharmProgram路徑下。
因此打包時需要添加路徑進(jìn)行打包。
使用pyinstaller ***.py -F -p D:PycharmProgram命令在主程序所在文件目錄下進(jìn)行打包,即可解決模塊找不到的問題。
可以正常運(yùn)行。
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章:
1. springcloud alibaba nacos linux配置的詳細(xì)教程2. Vue為什么要謹(jǐn)慎使用$attrs與$listeners3. SpringBoot 使用 @Value 注解讀取配置文件給靜態(tài)變量賦值4. Java 生成帶Logo和文字的二維碼5. SpringBoot整合MybatisPlus的教程詳解6. 解決在Vue中使用axios POST請求變成OPTIONS的問題7. Spring Boot2發(fā)布調(diào)用REST服務(wù)實(shí)現(xiàn)方法8. python 實(shí)現(xiàn)圖片修復(fù)(可用于去水印)9. Android自定義控件實(shí)現(xiàn)方向盤效果10. python中的socket實(shí)現(xiàn)ftp客戶端和服務(wù)器收發(fā)文件及md5加密文件
