2013-03-01 169 views
0

我使用適合我的Python版本的Python 2.4和py2exe版本。我想要執行的文件位於setup.py文件所在目錄的Python 2.4文件夾中。Py2exe令人困惑的錯誤

當我運行腳本(以cmd)c:\Python24\python.exe setup.py py2exe時,我在我的cmd中獲得了一堆文本,並且在圖片中可以看到錯誤。模塊丟失,無法執行文件。我一直有這個問題很長一段時間,我不知道如何解決它。我需要讓我的程序可執行。

任何想法如何解決這個問題?

Error Image

編輯:我試圖用Python和pygame的和Py2exe新版本(2.6,2.7,3.2),並沒有奏效。我總是遇到這些錯誤:S 另外,我已經試過cx_Freeze,再次是相同的:/

+2

爲什麼選擇Python 2.4?控制檯窗口顯示你缺少的東西。 – Blender 2013-03-01 07:54:31

+0

當您在Windows上工作時,一些缺失的框架(Foundation和AppKit)是Mac框架。 – robertklep 2013-03-01 07:55:49

+0

是的,但是如何防止這個錯誤呢? – lbartolic 2013-03-01 08:00:27

回答

0

數週(甚至之前有這個問題)我很高興地說,我解決了這個問題後, ! :)我的問題(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