使用PyInstaller將Pygame庫編寫的小游戲程序打包為exe文件及出現(xiàn)問題解決方法
下面看下通過Pyinstaller打包Pygame庫寫的小游戲程序出現(xiàn)的問題解決方法
# -基于Python的Pygame庫的GUI游戲
游戲內(nèi)容是通過飛船發(fā)射子彈來射擊外星人
空格鍵為開火,左右方向鍵移動,并設(shè)立了
不同關(guān)卡。
使用說明:
開發(fā)環(huán)境,游戲直接運行alien_invasion.exe即可,也可在具有Python3環(huán)境下運行alien_invasion.py
練習(xí)環(huán)境:
Python:3.5.4 64位
pyinstall:3.3.1
pyinstall使用:
pyinstaller -F demo.py
參數(shù) 含義
-F 指定打包后只生成一個exe格式的文件
-D –onedir 創(chuàng)建一個目錄,包含exe文件,但會依賴很多文件(默認(rèn)選項)
-c –console, –nowindowed 使用控制臺,無界面(默認(rèn)選項)
-w –windowed, –noconsole 使用窗口,無控制臺
-p 添加搜索路徑,讓其找到對應(yīng)的庫。
-i 改變生成程序的icon圖標(biāo)
打包注意事項:
1.打包有2種方式:
- 第一種是使用'-F'打包成單一的可執(zhí)行文件,如alien_invasion.exe,此項目需要將
- images文件夾放置在與其同一目錄下;
- 第二種是默認(rèn)使用'-D'方式,(但是我打包完成后無法運行,打包時經(jīng)常出現(xiàn)“hidden import “pygame._view”not found”)
2.打包的文件與《Python編程:從入門到實踐》練習(xí)的項目文件有所差異,具體為
button.py與scoreboard.py中的字體做了改動,由
'pygame.font.SysFont(None, 48)'=>'pygame.font.SysFont('arial', 36)'
3.使用pyinstaller打包時,不會自動包含圖片文件,所以最簡單的方式是打包后將圖片放在運行程序的
相應(yīng)路徑下。
!??!打包完畢后一定要講你的素材images放在exe目錄里面,以便exe文件能夠鏈接到你的素材。
PS:指定dist生成目錄路徑(而不是命令行當(dāng)前目錄)
pyinstaller -F E:/*/*/*.py --distpath=E:*/*/*/dist
接著介紹下使用PyInstaller將Pygame庫編寫的小游戲程序打包為exe文件的方法。
一、安裝Pyinstaller
環(huán)境:python3.6、window10
注意事項:
- python64位版本打包的exe,只能在64位操作系統(tǒng)使用
- 打包文件夾和文件的名稱不能用中文
- pygame打包是里面的字體要改成"arial"格式。 pygame.font.SysFont("宋體", 32) 32) 換成 pygame.font.SysFont('arial',32)
1、直接安裝
pip命令安裝:pip install Pyinstaller
安裝成功后會提示如下圖所示
2、Anaconda環(huán)境下安裝
如果是在Anaconda環(huán)境下直接打包,可能會將其中大部分?jǐn)U展都打包進(jìn)去了,造成打包后的exe文件過大,為此有以下解決方案(如果未出現(xiàn)此問題的同學(xué)請?zhí)^)。
- 建立虛擬環(huán)境 :pipenv install
- 進(jìn)入虛擬環(huán)境:pipenv shell
- 安裝所需模塊 pip install pygame
- 打包的模塊也要安裝 pip install pyinstaller
本人在C:/Users/EDZ/目錄中新建Pyinstaller文件,首先進(jìn)入目錄,建立虛擬環(huán)境,進(jìn)入虛擬環(huán)境,最后安裝程序所需的安裝模塊以及pyinstaller。具體過程如圖所示:
二、使用Pyinstaller打包生成exe文件
將要打包的py文件放入所創(chuàng)建的C:\Users\EDZ\Pyinstaller目錄中,將自定義程序圖標(biāo)ico文件,也一同放進(jìn)程序所在目錄程序。
介紹一下 Pyinstaller 常用的參數(shù)用法:
- -F: 表示生成單個可執(zhí)行文件
- -D:表示打包多個文件,在dist中生成很多依賴文件,
- -w:指定生成 GUI 軟件,表示去掉控制臺窗口
- -i <Icon File>: 指定打包后可執(zhí)行文件的圖標(biāo)
命令:pyinstaller -F -w -i snaker.ico retro_snaker.py
稍微等待后,如果成功則會提示successfully,如圖所示:
三、運行生成的exe文件
打包完成后,exe程序?qū)a(chǎn)生在打包目錄的dist文件中。
如圖所示:
那么我們就可以打開并運行你所打包的exe文件了
四、exe文件運行中的問題
缺少MSVisualC++ 2015動態(tài)庫
打開程序,報錯提示:無法定位程序輸入點ucrtbase.terminate
于動態(tài)鏈接庫api-ms-win-crt-runtime-l1-1-0.dll
上,如圖所示:
解決方案:安裝:Visual C++ Redistributable for Visual Studio 2015
注:下載對應(yīng)版本安裝
微軟官網(wǎng):https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=48145
安裝后重啟下電腦
若還不行,嘗試安裝下這個補(bǔ)?。篕B2999226
微軟官網(wǎng):https://www.microsoft.com/en-us/download/details.aspx?id=49093
總結(jié)
以上所述是小編給大家介紹的使用PyInstaller將Pygame庫編寫的小游戲程序打包為exe文件,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
pymongo如何通過oplog獲取數(shù)據(jù)(mongodb)
使用MongoDB的oplog(操作日志)進(jìn)行數(shù)據(jù)同步是高級的用法,主要用于復(fù)制和故障恢復(fù),這篇文章主要介紹了pymongo通過oplog獲取數(shù)據(jù)(mongodb),需要的朋友可以參考下2023-09-09Python多進(jìn)程multiprocessing.Pool類詳解
這篇文章主要為大家詳細(xì)介紹了Python多進(jìn)程multiprocessing.Pool類,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-04-04Django ORM實現(xiàn)按天獲取數(shù)據(jù)去重求和例子
這篇文章主要介紹了Django ORM實現(xiàn)按天獲取數(shù)據(jù)去重求和例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05Python庫?Bokeh?數(shù)據(jù)可視化實用指南
大家好,今天跟大家分享的是交互式可視化神器?Python?Bokeh?的詳細(xì)使用教程,Bokeh是一個面向現(xiàn)代web瀏覽器的交互式可視化庫。它提供了多功能圖形的優(yōu)雅、簡潔的構(gòu)造,并在大型數(shù)據(jù)集或流式數(shù)據(jù)集上提供了高性能的交互性,接下來讓我們詳細(xì)看看吧2021-11-11Python實戰(zhàn)購物車項目的實現(xiàn)參考
今天小編就為大家分享一篇關(guān)于Python實戰(zhàn)購物車項目的實現(xiàn)參考,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-02