2015-12-19 146 views
2

所以我不確定這是否是正確的放置位置,但我試圖將我的Pygame文件轉換爲更普遍的東西。第一個平臺是Windows。它一直在爲我工作,直到我添加了一些與字形庫相關的代碼(http://www.pygame.org/project-Glyph-1002-.htmlPyinstaller EXE開始時崩潰

現在它開始崩潰,我真的不知道爲什麼。誰能幫我這個?我從來沒有做過追蹤或任何事情,如果有幫助,這裏是我的遊戲的壓縮文件,我試圖用--onefile命令做到這一點。

https://www.dropbox.com/sh/5x143gx95f6sy8j/AADsnPZFwdlrVpc1b8G8QcRja?dl=0

我試過的事情是這樣的:添加--hiddenfile =雕紋,檢查所創建的警告文件,並通過改變我的比賽線路,谷歌搜索這個調試自己,直到我的手指流血

我無法嘗試的事情,因爲我找不到足夠的信息:回溯,控制檯爲什麼它不工作,創建一個日誌文件,告訴我什麼是錯誤的,因爲我無法弄清楚。

唯一嚴重改變的是我的Windows 10更新,這可能與它爲什麼不能正常工作有關。

謝謝! - Zach

回答

2

我已經在Linux上測試過你的遊戲,並且在Python解釋器中運行時玩得很開心。 使用PyInstaller時出現錯誤。因爲你沒有發佈你的錯誤,我不知道它是否一樣。 (-1爲您服務!) 如果你的錯誤是

Fatal Python error: (pygame parachute) Segmentation Fault 

我有一個提示你去哪裏找。 問題是在於在字體初始化glyph.py和editor.py:

FONT = Font(None,8) 

這輪胎初始化的默認字體。但它不可用。 如果你一直使用Google,你可能發現thisthis

所以我所做的就是修改glymph.py和editor.py(做了一個本地副本,並修改了此),並改變了字體加載到

FONT = Font('silkscreen.ttf', 8) 

您的工作目錄中必須包含silkscreen.ttf或任何其他字體。錯誤消失了。

你可能會根據this hint來修改你的所有路徑。

import sys 
import os 
... 
if getattr(sys, 'frozen', False): 
    # we are running in a bundle 
    basedir = sys._MEIPASS 
else: 
    # we are running in a normal Python environment 
    basedir = '.' 

,並使用

basedir + os.sep + 'your file name' 
在所有來源

如果您想讓您的遊戲在Linux上運行,請將文件Sounds/GBMusic.mp3更改爲ogg格式。 不幸的是我沒有設法使背景音樂工作(100%的CPU)。所以我註釋掉行:

​​

我希望我能與你的問題的幫助和可能給進一步發展的一些提示。

+0

哇,謝謝!我自己沒有得到一個錯誤,EXE只是崩潰,我不知道如何調試。我會亂搞雕文,回到你身邊! –

+0

它的工作!我不能夠感謝你! –

+0

另外,我有Ubuntu,當我播放背景音樂時,它工作得很好,我不知道爲什麼會發生在你身上? –