2012-01-26 66 views
3

我正在使用模塊pygame對我的2D街機遊戲編程問題進行了2天的編程,而且我找不到解決方案。Pygame Distribution - 運行時錯誤

問題是:我想創建一個正確運行我的程序的Windows可執行文件。我已經成功地創建一個.exe文件,但我儘快得到一個錯誤,因爲我開始的exe:

Runtime Error! 
Path\MyGame.exe 
This application has requested the Runtime to terminate it in an unusual way. 
Please contact the application's support team for more information. 

我試圖創建.exe文件,每一個模塊,可以很容易地建立一個,例如cx_freezepy2exepyinstaller。最後,我使用了哪一個並不重要,我得到了同樣的錯誤。我已經嘗試用另一臺PC啓動.exe文件,但失敗了。更新了我的Microsoft Visual C++ Redistributable,沒有任何幫助。

所以錯誤必須在我的代碼中的某個地方。該程序運行正常,但必須有一些東西,使我無法使.exe文件正常工作。

代碼大約有1000行,我知道這是過分的要求的人檢查全部代碼,但我希望有人有類似的問題,以這種或有一些小技巧爲什麼這個錯誤出現,可以幫助我。

你可以找到the code here

回答

4

問題不是你的代碼,問題是你如何生成你的.exe。用pygame這樣做是一個真正的婊子,但有一些黑客和谷歌你可以做到這一點。

這應該讓你開始:http://pygame.org/wiki/Pygame2exe

+0

嘿爆笑,謝謝你的回答。我已經試過它與您發佈的腳本,但它也使用py2exe,我認爲我的代碼中有一個問題.... – Chocolate

+0

不,如果代碼運行良好與'python yourfile.py'那麼問題不在代碼。嘗試在谷歌上搜索更多此問題。我也建議使用py2exe,因爲對於Windows而言,它似乎是最堅實的東西。 – orlp

+0

我只是不能相信...我再次嘗試用上面的腳本,現在它的工作!非常感謝!!!浪費2天,但誰在乎:D thx !! Registers – Chocolate

3

過類似的問題,並且也是一個。找到了解決這些問題的方法:

幾周後(甚至有過這個問題)我很高興地說我解決了這個問題! :)我的問題(http://i.stack.imgur.com/WpkjR.png)的

第1部分: 我通過編輯setup.py腳本加入「排除」在這部分解決了這個問題。這導致了可執行文件的成功製作!

修改setup.py腳本:

from distutils.core import setup 
import py2exe 
setup(windows=['source_static.py'], options={ 
      "py2exe": { 
       "excludes": ["OpenGL.GL", "Numeric", "copyreg", "itertools.imap", "numpy", "pkg_resources", "queue", "winreg", "pygame.SRCALPHA", "pygame.sdlmain_osx"], 
       } 
      } 
    ) 

所以,如果你有類似的問題,只是把那些「失蹤」的模塊到這個「不包括」行。

第2部分:

我成功的可執行文件的製作後,我有一個問題:應用程序已請求運行時終止它以不同尋常的方式,請聯繫...。經過幾天和幾天的搜索和思考如何解決這個問題,我找到了一個辦法。我不敢相信這個問題太荒唐了。這個問題在我的代碼,與字體定義:

font1 = pygame.font.SysFont(None, 13) 

改變「」一些系統字體的名稱(一個例子「宋體」(必須是一個字符串)),並編譯之後,我不能不相信我的.exe文件起作用了!

font1 = pygame.font.SysFont("Arial", 13) 

當然,您可以使用自己的字體,但必須指定其路徑並在程序中定義它的路徑。

因此,對於所有遇到此問題的人,請嘗試這些步驟,並希望您能成功。 我真的希望這會對你有所幫助,因爲我已經花了幾天和幾周的時間去解決這些問題。我甚至嘗試使用所有版本的python和pygame創建我的.exe文件,還有許多其他的.exe構建器和安裝腳本,但沒有運氣。除了這些問題之外,我還遇到過許多其他問題,但我在stackoverflow.com上找到了答案。

我很高興我找到了一種方法來解決這個問題,並幫助你,如果你面對同樣的問題。

小tips(事我也做):

1:更新您的Microsoft Visual C++庫到最新版本。

第二種:如果您的圖像或字體類似於您的可執行程序需要,請將它們包括到dist文件夾(您的.exe文件已創建的位置)。

第3步:當您製作.exe文件時,將所有需要的文件包含到setup.py腳本所在的文件夾(主腳本使用的所有文件和目錄)中。

使用Python 2.7版的x64pygame的py2exe

1

有同樣的問題,通過將pygame的默認字體文件放在分發文件夾中解決它。它在項目中使用,我假定它會自動包含在構建中。