網(wǎng)站首頁 編程語言 正文
目的描述:
為了讓沒有安裝Python的人也能使用我們編寫的.py文件,我們需要將編寫好的Python程序生成.exe文件。
第一步 下載pyinstaller
pyinstaller插件是Python自帶的插件,用于為我們寫好的代碼進行打包,最終自動合成.exe文件。
在Pycharm界面的最下面,你可以看到Terminal,選擇這個選項,這就是一個終端界面。
在此界面寫輸入指令: pip install pyinstaller 對pyinstaller進行下載。
在下載過程中,可能會遇到一些錯誤提示,解決方案可以參考我的另外幾篇博客:
常見錯誤提示一:
You are using pip version 10.0.1, however version 20.0.2 is available.
You should consider upgrading via the ‘python -m pip install --upgrade pip’ command.
常見錯誤提示二:
NoneType’ object has no attribute 'bytes
第二步 使用pyinstaller
在終端里輸入的指令為: pyinstaller -w -F XXX.py
但是對于初學者來說,這里要解釋的東西很多:
-w:表示希望在生成的.exe程序運行過程中,不要出現(xiàn)cmd黑框(就是圖中的黑框)(注意:小寫!)
-F:表示希望將所有的程序全部打包在一起,生成的只有一個.exe文件,這樣的文件集成度高,但是運行速度慢;如果不寫-F,生成的還有一堆.dll文件,這樣的程序里文件很多,但是運行速度比較快,這也是我們平時使用的程序的樣式(如圖)(注意:大寫!)
XXX.py:指的是你整個項目的入口程序,大家寫項目時很可能是多文件編程,你整個項目時靠哪個文件作為入口拉起來的,就填那個文件的名字。
常見錯誤:
ValueError: script ‘C:\Users\Administrator.XXX.py’ not found
找不到XXX.py這個程序
解決方案:
pyinstaller找文件的方法是看你建立的那個工程文件夾里有沒有你寫進去的文件,而不是看子文件夾里有沒有。如果您是在子文件夾中寫程序,可以把你寫的所有程序都拷貝到工程文件夾中。
如果你在代碼中導入了圖片、文檔等與路徑相關的文件,注意修改路徑。
第三步: 找到生成的.exe文件
有不少同學都反映,沒有看到生成的.exe文件。
沒看見就對了,因為.exe文件根本不在工程文件夾下面。運行pyinstaller -w -F XXX.py指令后,會生成兩個文件夾:一個叫build,另一個叫dist。
點開dist文件夾,里面會有一個用你填進去的XXX命名的文件夾,再點進去,你就會看到XXX.exe文件。
理論上你已經(jīng)生成了.exe可執(zhí)行文件,這樣就完成了。如果你的.exe文件可以運行起來,那么恭喜你!但是實施情況是,這個.exe文件運行起來很有可能會有各種各樣奇葩的問題:比如閃退、雙擊后直接消失了、程序莫名其妙地崩掉等。
總結
如果遇到這些問題,大家千萬不要慌張,因為這是很多人都會遇到的,網(wǎng)上也有很多人問這樣的問題,我在這里只是給大家提個醒,讓大家有個心理準備。不要覺得自己勝利在望,結果被悶頭一棒。解決這些問題我也花了很長時間,之后我再專門寫一篇博客來告訴大家如何解決這些問題的,敬請期待。
原文鏈接:https://blog.csdn.net/Nire_Yeyu/article/details/10468388
相關推薦
- 2022-05-08 jquery實現(xiàn)淘寶詳情頁選擇套餐_jquery
- 2022-06-29 python人工智能tensorflow常見損失函數(shù)LOSS匯總_python
- 2024-01-14 springboot-mybatis/JPA流式查詢
- 2022-08-21 Caffe卷積神經(jīng)網(wǎng)絡solver及其配置詳解_python
- 2022-08-15 Springboot整合Elasticsearch及相關API
- 2022-05-07 Python中的集合一起來學習一下_python
- 2023-05-26 解讀tf.keras.layers模塊中的函數(shù)_python
- 2022-10-09 set_new_handler(0)有什么用_C 語言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結構-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支