我正在用Python 3.2和Pygame進行遊戲。我已成功設法使用cx_freeze
將所有內容捆綁到可執行文件中,並運行。精細。唯一的問題是,即使當我將-OO
標誌傳遞給我的setup.py
時,也會以調試模式編譯我的遊戲。(我已經print
聲明證實,它是__debug__
確實True
。)Python 3.2:cx_freeze編譯我的程序,但在調試模式下
的問題是,我的遊戲已經調試是在釋放模式自動禁用功能。我不想分發我的遊戲的調試功能,我不希望手動將它們從代碼中移除。
我setup.py
,這裏縮短簡潔,如下:
from cx_Freeze import setup, Executable
includes = [<some modules>]
excludes = [<some unwanted modules>]
include_files = [<game assets>]
build_options = {
'append_script_to_exe':True,
'bin_excludes':excludes,
'compressed':True,
'excludes': excludes,
'include_files': include_files,
'includes': includes,
'optimize':2,
'packages': ['core', 'game'],
}
common_exe_options = {
'appendScriptToExe' : True,
'appendScriptToLibrary':True,
'compress' : True,
'copyDependentFiles' : True,
'excludes' : excludes,
'includes' : includes,
'script' : '__init__.py',
}
executable = Executable(**common_exe_options)
setup(name='Invasodado',
version='0.8',
description='wowza!',
options = {'build_exe': build_options,
'bdist_msi': build_options},
executables=[executable])
完整的劇本,與我的代碼的其餘部分,可以在https://github.com/CorundumGames/Invasodado/blob/master/setup.py找到。
在Ubuntu 12.10上,我使用python3.2 -OO setup.py build
構建。在Windows XP上,我正在用C:\Python32\python -OO setup.py build
構建。
任何幫助將會很棒!
這是對OpenGL代碼一個巨大的問題:東西像pyglet和pyopengl,如果我沒有記錯,在運行時,如果執行了一堆昂貴的安全檢查不運行優化,將代碼降低一個數量級。 – 2015-08-20 21:35:08