最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

pyinstaller打包程序exe踩過的坑

 更新時間:2019年11月19日 11:01:47   作者:peace老師  
這篇文章主要介紹了pyinstaller打包exe踩過的坑,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

基礎環(huán)境

  • python 2.7.17
  • pyinstaller 3.5

安裝pyinstaller

pip install pyinstaller

坑,大坑,深坑

背景:用pygame寫了個貪吃蛇游戲,要打包成exe
用到了字體文件 C:\Windows\Fonts\simsun.ttc (宋體)

打包過程中沒有報錯
打包過程中的警告可以忽略,這個警告: WARNING: Hidden import “pygame._view” not found!

運行exe的時候報NotImplementedError: Can't perform this operation for unregistered loader type
真的是百思不得其姐,為什么會報這個錯????
最終確定,是找不到引用的字體文件,需要指定下,添加如下代碼:

def rp(relative_path):
 """ Get absolute path to resource, works for dev and for PyInstaller """
 try:
  # PyInstaller creates a temp folder and stores path in _MEIPASS
  base_path = sys._MEIPASS
 except Exception:
  base_path = os.path.abspath(".")

 return os.path.join(base_path, relative_path)

并且每個文件都要使用該函數轉換下地址

BASICFONT = pygame.font.Font(rp('C:\Windows\Fonts\simsun.ttc'), 18)
titleFont = pygame.font.Font(rp('C:\Windows\Fonts\simsun.ttc'), 100)
gameOverFont = pygame.font.Font(rp('freesansbold.ttf'), 100)

再次pyinstaller -F xxx.py生成單個exe后,就可以直接運行不會報錯了

上邊解決了可能是巧合,因為每個人電腦上都有這個字體

再來個圖片的,其他電腦上就沒有了
首先,還是那個函數需要加到代碼里

def rp(relative_path):
 """ Get absolute path to resource, works for dev and for PyInstaller """
 try:
  # PyInstaller creates a temp folder and stores path in _MEIPASS
  base_path = sys._MEIPASS
 except Exception:
  base_path = os.path.abspath(".")

 return os.path.join(base_path, relative_path)

再者,把src目錄下的background.jpg用上方的函數轉換下地址,同時打印下地址以觀后效

bgimg = rp(os.path.join('src','background.jpg'))
print(bgimg)

使用 pyi-makespec -F 2048.py命令生成spec文件,修改文件內容如下:

指定src目錄打包到exe中,運行時生成的臨時路徑也叫src

src-src

指定命令打包:pyinstaller -F 2048.spec

把2048.exe挪到另一個位置,跑一下看看cmd輸出

src路徑

生成的臨時路徑也叫src,且能找到我們的圖片。

這時候還是不確定,我們換臺機器跑下試試

也是正確的

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Python異常對象Exception基礎類異常捕捉

    Python異常對象Exception基礎類異常捕捉

    這篇文章主要為大家介紹了Python異常對象異常捕捉及Exception基礎類,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • python實現斐波那契數列的方法示例

    python實現斐波那契數列的方法示例

    每個碼農大概都會用自己擅長的語言寫出一個斐波那契數列出來,斐波那契數列簡單地說,起始兩項為0和1,此后的項分別為它的前兩項之后。下面這篇文章就給大家詳細介紹了python實現斐波那契數列的方法,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • Django中redis的使用方法(包括安裝、配置、啟動)

    Django中redis的使用方法(包括安裝、配置、啟動)

    下面小編就為大家分享一篇Django中redis的使用方法(包括安裝、配置、啟動),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • selenium 安裝與chromedriver安裝的方法步驟

    selenium 安裝與chromedriver安裝的方法步驟

    這篇文章主要介紹了selenium 安裝與chromedriver安裝的方法步驟,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • 從0開始的Python學習014面向對象編程(推薦)

    從0開始的Python學習014面向對象編程(推薦)

    這篇文章主要介紹了Python面向對象編程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • Python實現的將文件每一列寫入列表功能示例【測試可用】

    Python實現的將文件每一列寫入列表功能示例【測試可用】

    這篇文章主要介紹了Python實現的將文件每一列寫入列表功能,涉及Python文件讀取、遍歷、序列追加、賦值等相關操作技巧,需要的朋友可以參考下
    2018-03-03
  • Python中常用的十個函數介紹

    Python中常用的十個函數介紹

    這篇文章主要介紹了Python中常用的十個函數,shutil 是 Python 中的高級文件操作模塊,與os模塊形成互補的關系,需要的朋友可以參考下
    2023-04-04
  • Python基于類路徑字符串獲取靜態(tài)屬性

    Python基于類路徑字符串獲取靜態(tài)屬性

    這篇文章主要介紹了Python基于類路徑字符串獲取靜態(tài)屬性,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • 從零學python系列之淺談pickle模塊封裝和拆封數據對象的方法

    從零學python系列之淺談pickle模塊封裝和拆封數據對象的方法

    這個系列也發(fā)了幾篇文章了,都是個人的一些學習心得的記錄,今天在學習文件數據處理的時候了解到有pickle模塊,查找官方文檔學習了一些需要用到的pickle內容。
    2014-05-05
  • 使用Python中tkinter庫簡單gui界面制作及打包成exe的操作方法(二)

    使用Python中tkinter庫簡單gui界面制作及打包成exe的操作方法(二)

    這篇文章主要介紹了使用Python中tkinter庫簡單gui界面制作及打包成exe的操作方法(二),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10

最新評論

杭锦旗| 巧家县| 梅河口市| 崇义县| 镇安县| 四子王旗| 江西省| 双桥区| 康平县| 东光县| 麦盖提县| 门源| 保山市| 平顺县| 孟村| 灵石县| 扬州市| 岢岚县| 玉环县| 新河县| 正镶白旗| 同心县| 瑞昌市| 体育| 渝北区| 松阳县| 张掖市| 德庆县| 石狮市| 呼图壁县| 烟台市| 镇雄县| 辉南县| 中江县| 江华| 射阳县| 陆河县| 日喀则市| 龙江县| 济源市| 荔波县|