python腳本打包后無(wú)法運(yùn)行exe文件的解決方案
技術(shù)棧win7+python3+selenium
之前有個(gè)需求需要實(shí)現(xiàn)自動(dòng)化提流程,為了在任何電腦都能實(shí)現(xiàn)該功能,特此寫(xiě)了個(gè)爬蟲(chóng),并將其打包成EXE文件,但在點(diǎn)擊EXE文件是出現(xiàn)了問(wèn)題
點(diǎn)擊exe文件終端小黑窗一閃而過(guò)
為了看到終端是否有報(bào)錯(cuò)可以在該exe文件目錄下輸入cmd執(zhí)行終端,并在終端中輸入exe文件名稱如下
回車后會(huì)看到報(bào)錯(cuò)
一開(kāi)始怎么也無(wú)法找到錯(cuò)誤所致(因?yàn)樵谔摂M環(huán)境都有導(dǎo)入selenium包),后來(lái)索性直接在windows環(huán)境下pip install selenium,成功的解決了這個(gè)問(wèn)題。
在自己電腦上終于可以跑成功了,但是把文件發(fā)到其他電腦上就有另一個(gè)問(wèn)題了
Microsoft Windows [版本 10.0.17763.805] (c) 2018 Microsoft Corporation。保留所有權(quán)利。 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] 系統(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-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
原因是谷歌瀏覽器對(duì)應(yīng)的驅(qū)動(dòng)不同(我本地驅(qū)動(dòng)配置了相對(duì)應(yīng)的谷歌驅(qū)動(dòng)的環(huán)境變量,所以代碼中并沒(méi)有寫(xiě)驅(qū)動(dòng)的絕對(duì)路徑)
解決方法下載對(duì)應(yīng)的驅(qū)動(dòng)放到exe文件同級(jí)目錄下就好啦!
補(bǔ)充:使用pyinstaller將python程序打包成exe執(zhí)行文件時(shí)遇到模塊找不到的問(wèn)題解決辦法
在使用pyinstaller對(duì)python程序進(jìn)行打包后,若打包的主程序中調(diào)用自編模塊(有時(shí)第三方模塊也會(huì)出現(xiàn)同樣問(wèn)題),運(yùn)行exe文件出現(xiàn)模塊找不到的問(wèn)題。
這樣就不能將打包后的exe文件 在其他電腦上運(yùn)行。
解決辦法是:
打包時(shí)加入你自編模塊(或第三方模塊所在文件夾路徑),筆者程序中調(diào)用了shiyanshi自編模塊,在D:\Pycharm\Program路徑下。
因此打包時(shí)需要添加路徑進(jìn)行打包。
使用pyinstaller ***.py -F -p D:\Pycharm\Program命令在主程序所在文件目錄下進(jìn)行打包,即可解決模塊找不到的問(wèn)題。
可以正常運(yùn)行。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Python基于多線程實(shí)現(xiàn)ping掃描功能示例
這篇文章主要介紹了Python基于多線程實(shí)現(xiàn)ping掃描功能,結(jié)合實(shí)例形式分析了Python多線程與進(jìn)程相關(guān)模塊調(diào)用操作技巧,需要的朋友可以參考下2018-07-07Python Numpy 控制臺(tái)完全輸出ndarray的實(shí)現(xiàn)
這篇文章主要介紹了Python Numpy 控制臺(tái)完全輸出ndarray的實(shí)現(xiàn)方式,希望給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧2020-02-02python之json文件轉(zhuǎn)xml文件案例講解
這篇文章主要介紹了python之json文件轉(zhuǎn)xml文件案例講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08python實(shí)現(xiàn)在無(wú)須過(guò)多援引的情況下創(chuàng)建字典的方法
這篇文章主要介紹了python實(shí)現(xiàn)在無(wú)須過(guò)多援引的情況下創(chuàng)建字典的方法,是非常實(shí)用的技巧,需要的朋友可以參考下2014-09-09Python學(xué)習(xí)Turtle庫(kù)畫(huà)對(duì)稱勾股樹(shù)體會(huì)分形驚艷
這篇文章主要為大家介紹了Python學(xué)習(xí)中如何使用Turtle庫(kù)畫(huà)對(duì)稱勾股樹(shù),從而體會(huì)到分形世界的驚艷,文中附含詳細(xì)示例代碼有需要的朋友可以借鑒參考下2021-09-09Python抓取通過(guò)Ajax加載數(shù)據(jù)的示例
在網(wǎng)頁(yè)上,有一些內(nèi)容是通過(guò)執(zhí)行Ajax請(qǐng)求動(dòng)態(tài)加載數(shù)據(jù)渲染出來(lái)的,本文主要介紹了使用Python抓取通過(guò)Ajax加載數(shù)據(jù),感興趣的可以了解一下2023-05-05python @classmethod 的使用場(chǎng)合詳解
這篇文章主要介紹了python @classmethod 的使用場(chǎng)合詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08