第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

如何將 TrueType 字體文件添加到 pyinstaller 可執(zhí)行文件以用于 Pygame?

如何將 TrueType 字體文件添加到 pyinstaller 可執(zhí)行文件以用于 Pygame?

蠱毒傳說 2023-06-20 15:19:50
我創(chuàng)建了一個(gè)名為 breakout.py 的 python 文件,并想用 pyinstaller 創(chuàng)建一個(gè) exe。python 文件需要與 python 腳本位于同一目錄中的文件 ARCADECLASSIC.TTF 才能運(yùn)行。此外,我希望能夠運(yùn)行 exe 文件而不必同時(shí)擁有字體文件。我嘗試了多個(gè) pyinstaller 命令來嘗試執(zhí)行此操作。我嘗試了這個(gè)命令pyinstaller --add-binary "ARCADECLASSIC.TTF;." --onefile breakout.py并收到了權(quán)限被拒絕的錯(cuò)誤號 13。然后我嘗試編輯我的代碼,使字體文件位于一個(gè)名為 fonts 的目錄中,并嘗試運(yùn)行此命令但pyinstaller --add-binary "fonts/ARCADECLASSIC.TTF;fonts" --onefile breakout.py沒有錯(cuò)誤,但是當(dāng)我運(yùn)行 exe 文件時(shí)出現(xiàn)錯(cuò)誤,說沒有名為 fonts/ARCADECLASSIC.TTF 的文件所以崩潰了.我現(xiàn)在也嘗試指定字體文件的完整目錄,但它仍然不起作用。如果這有助于我的操作系統(tǒng)是 Windows,我正在使用 python 3.8.5 64 位和 pyinstaller 4.0。首先是我正在嘗試做的事情,其次是如果可能的話我該怎么做以及我做錯(cuò)了什么。
查看完整描述

1 回答

?
素胚勾勒不出你

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊

您將需要?jiǎng)?chuàng)建一個(gè) .spec 文件并提及您要在其中包含的內(nèi)容,例如字體或其他圖像。


# -*- mode: python -*-


block_cipher = None



a = Analysis(['your python file.py'],

             pathex=['C:\\path\\to\\directory'], # just the directory not the file

             binaries=[],

             datas=[],

             hiddenimports=[],

             hookspath=[],

             runtime_hooks=[],

             excludes=[],

             win_no_prefer_redirects=False,

             win_private_assemblies=False,

             cipher=block_cipher)


a.datas += [('ttf file','path\\to\\ttf\\file', "DATA")]


pyz = PYZ(a.pure, a.zipped_data,

         cipher=block_cipher)


exe = EXE(pyz,

      a.scripts,

      a.binaries,

      a.zipfiles,

      a.datas,

      name='Your App Name',

      debug=False,

      strip=False,

      upx=True,

      console=False # set True if command prompt window needed

)

在游戲所在的實(shí)際 python 文件中包含此內(nèi)容。


def resource_path(relative_path):

    try:

        base_path = sys._MEIPASS

    except Exception:

        base_path = os.path.abspath(".")


    return os.path.join(base_path, relative_path)

每當(dāng)您想加載字體時(shí),都可以這樣做。


font = pygame.font.Font(resource_path("Font.ttf"), size)

在你的主 python 文件中有了它之后,在你的終端中輸入你創(chuàng)建的規(guī)范文件。


pyinstaller yourspecfile.spec

這將創(chuàng)建您的可執(zhí)行文件,它應(yīng)該自己工作。


這是我以前項(xiàng)目中的規(guī)范文件的樣子 # - - mode: python - -


block_cipher = None



a = Analysis(['lol.py'],

         pathex=['C:\\games\\snake'],

         binaries=[],

         datas=[],

         hiddenimports=[],

         hookspath=[],

         runtime_hooks=[],

         excludes=[],

         win_no_prefer_redirects=False,

         win_private_assemblies=False,

         cipher=block_cipher)


a.datas += [('8min.ttf','C:\\games\\snake\\8min.ttf', "DATA")]


pyz = PYZ(a.pure, a.zipped_data,

         cipher=block_cipher)


exe = EXE(pyz,

      a.scripts,

      a.binaries,

      a.zipfiles,

      a.datas,

      name='Snake',

      debug=False,

      strip=False,

      upx=True,

      console=False)


查看完整回答
反對 回復(fù) 2023-06-20
  • 1 回答
  • 0 關(guān)注
  • 253 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號