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