我使用的是anaconda。我推薦大家使用anaconda,對(duì)環(huán)境依賴(lài)關(guān)系處理的比較好。不用浪費(fèi)太多時(shí)間在安裝模塊上。
首先安裝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加exe文件的絕對(duì)路徑,但是效果和雙擊exe文件一樣,依然是一閃而過(guò)
這是先跳轉(zhuǎn)到exe所在的文件夾里,然后輸入文件名帶不帶.exe都行
結(jié)果第二種報(bào)錯(cuò)了,于是一切就從這個(gè)美麗的錯(cuò)誤開(kāi)始了
但是里面提示了正確的運(yùn)行方式,輸入.\Project 帶不帶.exe都行,然后又運(yùn)行了一次,終于看到了錯(cuò)誤信息,頓時(shí)有種淚流滿(mǎn)面的感覺(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)工了。
您可能感興趣的文章:- Pyinstaller打包文件太大的解決方案
- 基于pyinstaller超級(jí)加密操作(加殼和轉(zhuǎn)c)
- 基于PyInstaller各參數(shù)的含義說(shuō)明
- 解決Pyinstaller打包軟件失敗的一個(gè)坑
- Python實(shí)現(xiàn)圖片指定位置加圖片水?。ǜ絇yinstaller打包exe)
- pyinstaller打包可執(zhí)行文件,存放路徑包含中文無(wú)法運(yùn)行的解決方案