亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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?讀取?.gz?文件全過程

    Python?讀取?.gz?文件全過程

    這篇文章主要介紹了Python?讀取?.gz?文件全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Python讀取txt文件數據的方法(用于接口自動化參數化數據)

    Python讀取txt文件數據的方法(用于接口自動化參數化數據)

    這篇文章主要介紹了Python讀取txt文件數據的方法(用于接口自動化參數化數據),需要的朋友可以參考下
    2018-06-06
  • 基于Python制作簡易的windows修改器

    基于Python制作簡易的windows修改器

    現在應該大部分人都使用win11系統(tǒng)吧,win11其實挺好用哈,只是有一點不好用,就是右鍵的菜單,今天做個小程序,就是應該修改win11的一個應用程序,感興趣的可以了解一下
    2022-08-08
  • Python實例解析圖像形態(tài)學運算技術

    Python實例解析圖像形態(tài)學運算技術

    形態(tài)學處理方法是基于對二進制圖像進行處理的,卷積核決定圖像處理后的效果。本文將為大家詳細介紹一下OpenCV中的圖像形態(tài)學,感興趣的可以了解一下
    2022-03-03
  • Python實現快速查找并替換Excel中的數據

    Python實現快速查找并替換Excel中的數據

    Excel中的查找替換是一個非常實用的功能,能夠幫助用戶快速完成大量數據的整理和處理工作,避免手動逐一修改數據的麻煩,提高工作效率,所以本文給大家介紹了Python實現快速查找并替換Excel中的數據,需要的朋友可以參考下
    2024-06-06
  • 使用Python制作讀單詞視頻的實現代碼

    使用Python制作讀單詞視頻的實現代碼

    我們經常在B站或其他視頻網站上看到那種逐條讀單詞的視頻,但他們的視頻多多少少和我們的預期都不太一致,然而,網上很難找到和自己需求符合的視頻,所以本文給大家介紹了使用Python制作讀單詞視頻的實現,需要的朋友可以參考下
    2024-04-04
  • python單元測試框架unittest基本用法案例

    python單元測試框架unittest基本用法案例

    unittest庫unittest庫是python的內置庫,用來對程序進行測試,下面這篇文章主要給大家介紹了關于python中單元測試框架unittest基本用法的相關資料,需要的朋友可以參考下
    2022-09-09
  • Python開發(fā)微信公眾平臺的方法詳解【基于weixin-knife】

    Python開發(fā)微信公眾平臺的方法詳解【基于weixin-knife】

    這篇文章主要介紹了Python開發(fā)微信公眾平臺的方法,結合實例形式分析了Python基于weixin-knife針對微信公眾平臺消息、接口調用及事件處理的基本操作技巧與相關注意事項,需要的朋友可以參考下
    2017-07-07
  • asyncio 的 coroutine對象 與 Future對象使用指南

    asyncio 的 coroutine對象 與 Future對象使用指南

    asyncio是Python 3.4版本引入的標準庫,直接內置了對異步IO的支持。asyncio的編程模型就是一個消息循環(huán)。今天我們就來詳細討論下asyncio 中的 coroutine 與 Future對象
    2016-09-09
  • yolov5 win10 CPU與GPU環(huán)境搭建過程

    yolov5 win10 CPU與GPU環(huán)境搭建過程

    這篇文章主要介紹了yolov5 win10 CPU與GPU環(huán)境搭建過程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04

最新評論