だから、ここに私の問題があります。
Ubuntu 12.10 を使用して、Pygame と Python 3.3 でゲームを作成しています。罰金。一連の Python スクリプトを 1 つの実行可能ファイルにバンドルして配布します。また、結構です。Python 3 を使用しているため、他に選択肢がないため、cx_freeze を使用します。
これが私の問題の出番です。Googleで検索しましたが、そのようなものは見たことがありません。私のsetup.py
は次のとおりです。
from cx_Freeze import setup, Executable
import sys
includes = ['sys', 'pygame.display', 'pygame.event', 'pygame.mixer', 'core', 'game']
build_options = {
'optimize' : 2,
'compressed': True,
'packages': ['pygame', 'core', 'game'],
'includes': includes,
'path': sys.path + ['core', 'game'],
}
executable = Executable('__init__.py',
copyDependentFiles=True,
targetDir='dist',
)
setup(name='Invasodado',
version='0.8',
description='wowza!',
options = {'build_exe': build_options},
executables=[executable])
私の__init__.py
は次のとおりです。
from sys import argv
import pygame.display
import pygame.event
import pygame.mixer
pygame.mixer.init()
pygame.display.init()
pygame.font.init()
from core import gsm
#Omitted for brevity
私のコードの残りの部分 (完全な を含む__init__.py
) は、関連がある場合はhttps://github.com/CorundumGames/Invasodadoにあります。
http://pastebin.com/Aej05wGEで見つけることができる長いお尻のスタック トレースを取得します。最後の 10 行は次のとおりです。
File "/usr/local/lib/python3.3/dist-packages/cx_Freeze/finder.py", line 421, in _RunHook
method(self, *args)
File "/usr/local/lib/python3.3/dist-packages/cx_Freeze/hooks.py", line 454, in load_scipy
finder.IncludePackage("scipy.lib")
File "/usr/local/lib/python3.3/dist-packages/cx_Freeze/finder.py", line 536, in IncludePackage
self._ImportAllSubModules(module, deferredImports)
File "/usr/local/lib/python3.3/dist-packages/cx_Freeze/finder.py", line 211, in _ImportAllSubModules
recursive)
File "/usr/local/lib/python3.3/dist-packages/cx_Freeze/finder.py", line 209, in _ImportAllSubModules
if subModule.path and recursive:
AttributeError: 'NoneType' object has no attribute 'path'
関連する場合に備えて、私は Pydev と Eclipse を使用しています。最後の行は、グーグルで検索しても何も明らかにならないため、際立っています。cx_freeze にはたわごとのドキュメントがあるため、簡単に確認できませんsubModule
。None
cx_freeze や distutils を実際に使用したことがないので、一体何をしているのかわかりません! どんな助けでも大歓迎です。