pyinstaller封裝exe的操作

我使用的是anaconda。我推薦大傢使用anaconda,對環境依賴關系處理的比較好。不用浪費太多時間在安裝模塊上。

首先安裝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鍵以後封裝自動執行。

看下圖,我們可以看到exe保存在瞭Scripts目錄下的dist文件夾下。

最後一句completed successfully表明創建exe成功。

運行exe後直接會彈出消息框,但不會有黑色的控制臺窗口顯示。

怎麼樣?是不是很簡單呢?我使用的是64位的anaconda。

封裝的是64位的exe.如果你想創建通用的,需要使用32位anaconda,這樣創建的32位的exe,可以正常運行於32/64位平臺。

補充:pyinstaller打包exe文件出現命令窗口一閃而過

用pyinstaller打包的exe文件打開時,命令窗口一閃而過,並且未出現GUI界面,也看不到錯誤信息,然後去網上搜相關的信息,最多的兩種說法:

1.添加raw_input()或者os.system(“pause”)等待信息 ,但是添加後依然是命令窗口一閃而過

2.在命令窗口打開exe,網上有兩種打開exe的方法

start Path\Project.exe

start加exe文件的絕對路徑,但是效果和雙擊exe文件一樣,依然是一閃而過

cd path >>Project.exe

這是先跳轉到exe所在的文件夾裡,然後輸入文件名帶不帶.exe都行

結果第二種報錯瞭,於是一切就從這個美麗的錯誤開始瞭

但是裡面提示瞭正確的運行方式,輸入.\Project 帶不帶.exe都行,然後又運行瞭一次,終於看到瞭錯誤信息,頓時有種淚流滿面的感覺啊

從錯誤信息也能看出為什麼加入raw_input()或者os.system(“pause”)等待信息沒有用,因為根本就沒走主程序提示沒有no module named requests 但是明明有,並且在pycharm中導入瞭啊,為什麼會提示沒有呢?

實在是想不明白,於是去網上查各種資料,終於查到瞭原因,原來是和編寫的工具有關,pacharm 導入的模塊並沒有安裝到電腦的python中模塊中去,這就導致瞭,在pacharm中能正常運行,在命令窗口裡運行python文件時卻提示錯誤。

搞明白原因後趕緊去試驗瞭一下,用pip安裝瞭requests後再打包,果然可以瞭。

在這次查找問題,解決問題的過程中,我總結瞭一下,這和我一上來就使用pycharm有關,pycharm在編程時確實好用,自動化程度確實高,但是在基礎還未學好的情況下我建議還是先使用IDLE吧,我之前就跳過瞭IDLE直接使用的pycharm,我現在也處在自學階段,就換回瞭IDLE,如果python有模塊沒導入,它會直接提示你,你也隻能pip去安裝或手動安裝,這樣打包的時候就不會有缺少模塊的問題,也希望大傢在以後的學習中碰到問題能及時解決問題,不要像我這樣一個簡單的問題搞瞭一天,也許大佬也遇到這個問題,可能感覺問題太簡單瞭,隻能我這種小白來給大傢當搬運工瞭。

推薦閱讀: