網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
前言
我原本是學(xué)C\C++,這是本人第一篇關(guān)于python的文章。請(qǐng)多多關(guān)照!
對(duì)于python為什么要打包成exe文件,是因?yàn)閭鬏斣次募约霸创a給他人是需要配置好一定的環(huán)境才能進(jìn)行編譯操作,而打包成exe文件就可以跟電腦軟件一樣打開(kāi)就可以運(yùn)行也可以分享給他人。但是打包好的exe文件并不是很方便去拆包,所以在打包前一定要測(cè)試之后在打包發(fā)布。
版本控制方面盡量選擇python3.6+32位版本,因?yàn)閣in64位系統(tǒng)向下兼容32位程序,如果不考慮32位系統(tǒng)的話無(wú)所謂,直接python64位版本直接打包就可以,但是只能在win64位系統(tǒng)運(yùn)行。
好了下面我將從安裝pyinstaller開(kāi)始介紹,然后是打包教程,最后是命令解釋。
PS:本次教程,我們不用cmd命令的小黑窗;
本次教程使用:Windows PowerShell(X86)
記得使用:管理員運(yùn)行
圖片最好使用ico后綴的圖片,要么下載個(gè)格式轉(zhuǎn)換。自己轉(zhuǎn)換使用
一、安裝pyinstaller
1.1 安裝pyinstaller,使用安裝命令:
pip3 install pyinstaller
1.2 如果遇到需要更新版本請(qǐng)輸入:
pip install --upgrade pyinstaller
1.3 檢查是否正確安裝
emmmm好像安裝完成了,
1.4 稍等,水一下;
python打包工具眾多,推薦使用pyinstaller,本工具支持window和linux下使用。在windows下,大小為幾十kb的源文件,打包成exe文件可能為幾十兆,原因是把程序所引用的庫(kù)文件也一起打包在一起了。
二、python打包成exe文件(附帶圖標(biāo)打包)
本次打包有兩種方法,根據(jù)自己勤快程度選擇吧!
2.1 第一種:cd到指定文件夾打包存放
第一步:移動(dòng)到指定存放exe文件的文件夾
cd 文件夾路徑
例子:cd C:\FILE2\python_file
第二步:打包就完事了(看代碼)
pyinstaller -F -w -i 路徑一(圖標(biāo)) 路徑二(py文件)
例子:pyinstaller -F -w -i D:\python_file\BindundunDemo\qt-logo.ico D:\python_file\BindundunDemo\main.py
2.2 第二種方法:cd到py源文件夾內(nèi)打包存放
第一步:移動(dòng)到源文件文件內(nèi)
cd 文件夾路徑
例子:cd C:\FILE2\python
第二步:還是打包就完事了(看代碼)
pyinstaller -F -w -i 圖標(biāo)名.后綴 源文件.py
例子:pyinstaller -F -w -i qt-logo.ico one.py
2.3最終效果
dist文件里存放的是你生成的exe文件,點(diǎn)擊即可使用。
至此,本次教程結(jié)束!
下面還有命令解釋,請(qǐng)細(xì)細(xì)品嘗。
參考:命令解釋
命令 | 命令全稱 | 命令解釋 |
---|---|---|
-F | –onefile | 打包成單個(gè)可執(zhí)行文件,如果你的代碼都寫(xiě)在一個(gè).py文件,則可以使用,如果是多個(gè).py文件,建議不要使用。 |
-D | –onedir | 打包多個(gè)文件,在dist中生成很多依賴文件,適合以框架形式編寫(xiě)工具代碼,該方式代碼較易于維護(hù)。默認(rèn)編譯就是-D的 |
-K | –tk | 在部署時(shí)包含 TCL/TK。 |
-a | –ascii | 不包含編碼.在支持Unicode的python版本上默認(rèn)包含所有的編碼。 |
-d | –debug | 產(chǎn)生debug版本的可執(zhí)行文件 |
-w | –windowed,–noconsole | 使用Windows子系統(tǒng)執(zhí)行.當(dāng)程序啟動(dòng)的時(shí)候不會(huì)打開(kāi)命令行(僅對(duì)Windows有效) |
-c | –nowindowed,–console | 使用控制臺(tái)子系統(tǒng)執(zhí)行(默認(rèn))(只對(duì)Windows有效) |
-s | –strip | 可執(zhí)行文件和共享庫(kù)將run through strip。注意Cygwin的strip可能使普通的win32 Dll無(wú)法使用 |
-X | –upx | 如果有UPX安裝(執(zhí)行Configure.py時(shí)檢測(cè)),則會(huì)壓縮執(zhí)行文件(Windows系統(tǒng)中的DLL也會(huì))。 |
-o DIR | –out=DIR | 指定spec文件的生成目錄,如果沒(méi)有指定,而且當(dāng)前目錄是PyInstaller的根目錄,會(huì)自動(dòng)創(chuàng)建一個(gè)用于輸出(spec和生成的可執(zhí)行文件)的目錄.如果沒(méi)有指定,而當(dāng)前目錄不是PyInstaller的根目錄,則會(huì)輸出到當(dāng)前的目錄下。 |
-p DIR | –path=DIR | 設(shè)置導(dǎo)入路徑(和使用PYTHONPATH效果相似)。可以用路徑分割符(Windows使用分號(hào),Linux使用冒號(hào))分割,指定多個(gè)目錄.也可以使用多個(gè)-p參數(shù)來(lái)設(shè)置多個(gè)導(dǎo)入路徑,讓pyinstaller自己去找程序需要的資源 |
-i <FILE.ICO> | –icon=<FILE.ICO> | 將file.ico添加為可執(zhí)行文件的資源(只對(duì)Windows系統(tǒng)有效),改變程序的圖標(biāo) pyinstaller -i ico路徑 xxxxx.py |
–i <FILE.EXE, N> | –icon=<FILE.EXE, N> | 將file.exe的第n個(gè)圖標(biāo)添加為可執(zhí)行文件的資源(只對(duì)Windows系統(tǒng)有效) |
-v FILE | –version=FILE | 將verfile作為可執(zhí)行文件的版本資源(只對(duì)Windows系統(tǒng)有效) |
-n NAME | –name=NAME | 可選的項(xiàng)目(產(chǎn)生的spec的)名字.如果省略,第一個(gè)腳本的主文件名將作為spec的名字 |
總結(jié)
原文鏈接:https://blog.csdn.net/weixin_45357007/article/details/123861771
相關(guān)推薦
- 2022-08-13 二分查找思路及模板
- 2022-12-22 go語(yǔ)言中GoMock安裝使用詳解_Golang
- 2022-06-02 Python利用zhdate模塊實(shí)現(xiàn)農(nóng)歷日期處理_python
- 2022-06-12 C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)順序表的進(jìn)階講解_C 語(yǔ)言
- 2022-12-15 C語(yǔ)言利用鏈表實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)_C 語(yǔ)言
- 2023-04-20 navicat 連接 mongodb 報(bào)錯(cuò)[13][Unauthorized] command li
- 2022-06-15 詳解Python進(jìn)行數(shù)據(jù)相關(guān)性分析的三種方式_python
- 2022-03-26 R語(yǔ)言繪制尺子的實(shí)現(xiàn)示例_R語(yǔ)言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支