pyinstaller封裝exe的操作
我使用的是anaconda。我推薦大家使用anaconda,對(duì)環(huán)境依賴關(guān)系處理的比較好。不用浪費(fèi)太多時(shí)間在安裝模塊上。
首先安裝pyinstaller.命令:
pip install pyinstaller
需要封裝的代碼為一個(gè)api消息框。代碼如下,保存的是pyw文件,放在桌面上。
# -*- coding: utf-8 -*- """ Created on Sun Jul 1 21:58:06 2018 @author: FanXiaoLei """ import win32api win32api.MessageBox(0,'打倒老殘','友情提示')
打開(kāi)windows cmd命令提示符,進(jìn)入pyinstaller安裝目錄的Scripts文件夾下。
我用的是anaconda,路徑為D:\ProgramData\Scripts。
封裝命令:pyinstaller -F -w 要封裝的文件完整路徑。
如下圖所示:
按enter鍵以后封裝自動(dòng)執(zhí)行。
看下圖,我們可以看到exe保存在了Scripts目錄下的dist文件夾下。
最后一句completed successfully表明創(chuàng)建exe成功。
運(yùn)行exe后直接會(huì)彈出消息框,但不會(huì)有黑色的控制臺(tái)窗口顯示。
怎么樣?是不是很簡(jiǎn)單呢?我使用的是64位的anaconda。
封裝的是64位的exe.如果你想創(chuàng)建通用的,需要使用32位anaconda,這樣創(chuàng)建的32位的exe,可以正常運(yùn)行于32/64位平臺(tái)。
補(bǔ)充:pyinstaller打包exe文件出現(xiàn)命令窗口一閃而過(guò)
用pyinstaller打包的exe文件打開(kāi)時(shí),命令窗口一閃而過(guò),并且未出現(xiàn)GUI界面,也看不到錯(cuò)誤信息,然后去網(wǎng)上搜相關(guān)的信息,最多的兩種說(shuō)法:
1.添加raw_input()或者os.system(“pause”)等待信息 ,但是添加后依然是命令窗口一閃而過(guò)
2.在命令窗口打開(kāi)exe,網(wǎng)上有兩種打開(kāi)exe的方法
start Path\Project.exe
start加exe文件的絕對(duì)路徑,但是效果和雙擊exe文件一樣,依然是一閃而過(guò)
cd path >>Project.exe
這是先跳轉(zhuǎn)到exe所在的文件夾里,然后輸入文件名帶不帶.exe都行
結(jié)果第二種報(bào)錯(cuò)了,于是一切就從這個(gè)美麗的錯(cuò)誤開(kāi)始了
但是里面提示了正確的運(yùn)行方式,輸入.\Project 帶不帶.exe都行,然后又運(yùn)行了一次,終于看到了錯(cuò)誤信息,頓時(shí)有種淚流滿面的感覺(jué)啊
從錯(cuò)誤信息也能看出為什么加入raw_input()或者os.system(“pause”)等待信息沒(méi)有用,因?yàn)楦揪蜎](méi)走主程序提示沒(méi)有no module named requests 但是明明有,并且在pycharm中導(dǎo)入了啊,為什么會(huì)提示沒(méi)有呢?
實(shí)在是想不明白,于是去網(wǎng)上查各種資料,終于查到了原因,原來(lái)是和編寫(xiě)的工具有關(guān),pacharm 導(dǎo)入的模塊并沒(méi)有安裝到電腦的python中模塊中去,這就導(dǎo)致了,在pacharm中能正常運(yùn)行,在命令窗口里運(yùn)行python文件時(shí)卻提示錯(cuò)誤。
搞明白原因后趕緊去試驗(yàn)了一下,用pip安裝了requests后再打包,果然可以了。
在這次查找問(wèn)題,解決問(wèn)題的過(guò)程中,我總結(jié)了一下,這和我一上來(lái)就使用pycharm有關(guān),pycharm在編程時(shí)確實(shí)好用,自動(dòng)化程度確實(shí)高,但是在基礎(chǔ)還未學(xué)好的情況下我建議還是先使用IDLE吧,我之前就跳過(guò)了IDLE直接使用的pycharm,我現(xiàn)在也處在自學(xué)階段,就換回了IDLE,如果python有模塊沒(méi)導(dǎo)入,它會(huì)直接提示你,你也只能pip去安裝或手動(dòng)安裝,這樣打包的時(shí)候就不會(huì)有缺少模塊的問(wèn)題,也希望大家在以后的學(xué)習(xí)中碰到問(wèn)題能及時(shí)解決問(wèn)題,不要像我這樣一個(gè)簡(jiǎn)單的問(wèn)題搞了一天,也許大佬也遇到這個(gè)問(wèn)題,可能感覺(jué)問(wèn)題太簡(jiǎn)單了,只能我這種小白來(lái)給大家當(dāng)搬運(yùn)工了。
相關(guān)文章
Python讀取環(huán)境變量的方法和自定義類(lèi)分享
這篇文章主要介紹了Python讀取環(huán)境變量的方法和自定義類(lèi)分享,本文直接給出代碼實(shí)例,需要的朋友可以參考下2014-11-11基于Python實(shí)現(xiàn)MUI側(cè)滑菜單a標(biāo)簽跳轉(zhuǎn)
這篇文章主要介紹了基于Python實(shí)現(xiàn)MUI側(cè)滑菜單a標(biāo)簽跳轉(zhuǎn),mui最接近原生APP體驗(yàn)的高性能前端框架,MUI側(cè)滑常見(jiàn)的場(chǎng)景有下拉刷新,側(cè)滑抽屜,側(cè)滑刪除,側(cè)滑返回以及側(cè)滑菜單等等,下面來(lái)看看文章內(nèi)容詳細(xì)的介紹,需要的朋友可以參考一下2021-11-11詳解pytorch中squeeze()和unsqueeze()函數(shù)介紹
這篇文章主要介紹了詳解pytorch中squeeze()和unsqueeze()函數(shù)介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09分析Python編程時(shí)利用wxPython來(lái)支持多線程的方法
這篇文章主要介紹了Python編程時(shí)利用wxPython來(lái)支持多線程的方法,本文主要以開(kāi)發(fā)GUI程序時(shí)做線程通訊作為一個(gè)示例來(lái)講解,需要的朋友可以參考下2015-04-04Python?Bleach保障網(wǎng)絡(luò)安全防止網(wǎng)站受到XSS(跨站腳本)攻擊
Bleach?不僅可以清理?HTML?文檔,還能夠?qū)︽溄舆M(jìn)行處理,檢查是否是合法格式,并可以使用白名單來(lái)控制哪些?HTML?標(biāo)簽、屬性是安全的,因此非常適合用于清潔用戶輸入的數(shù)據(jù),確保網(wǎng)站安全2024-01-01python編碼總結(jié)(編碼類(lèi)型、格式、轉(zhuǎn)碼)
這篇文章主要介紹了python編碼操作,包括編碼類(lèi)型、格式、轉(zhuǎn)碼等,并結(jié)合實(shí)例分析了相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2016-07-07進(jìn)行數(shù)據(jù)處理的6個(gè)?Python?代碼塊分享
這篇文章主要介紹了進(jìn)行數(shù)據(jù)處理6個(gè)Python代碼塊的分享,分享內(nèi)容有選取有空值的行、快速替換列值、對(duì)列進(jìn)行分區(qū)、將一列分為多列等內(nèi)容,需要的朋友可以參考一下2022-04-04