4

py2exeを使用してアプリの.exeを準備するときに問題が発生します。この問題の原因は、動的に定義されたモジュールのクラスを使用するために作成した次の関数です。

def of_import(module, classname, country = None):
    '''
    Returns country specific class found in country module
    '''
    if country is None:
       country = CONF.get('simulation', 'country')
    _temp = __import__(country + '.' + module, 
                       globals = globals(), 
                       locals = locals(), 
                       fromlist = [classname], 
                       level=-1)
    return getattr(_temp, classname, None)

以下を使用してクラスをロードしようとすると、

self.InputTable = of_import('model.data', 'InputTable')

.exeを実行すると、次のエラーが発生します。

File "core\utils.pyc", line 900, in of_import
ImportError: No module named france.model.data

france.model.data.pyが存在することを正確に示す必要があります。

この問題に対処するための適切な方法は何でしょうか?

詳細については、セットアップファイルへのリンクを参照してください:https ://github.com/openfisca/openfisca/blob/dev/src/setup_x64.py

4

1 に答える 1

3

私は同様の設定をしています

py2exeの「パッケージ」セクションに動的モジュールを追加してください

setup(windows=[{
                "script" : "openFisca.pyw"
                }], 
      options={"py2exe" : {"includes" : ["sip", "encodings.*", "numpy.*"],
                           "packages": ["france","tunisia"],
                           "dist_dir": dist_dir,
                           "bundle_files":3,
                           "dll_excludes": ["MSVCP90.dll"]
                           }}, 
      data_files=data_files)
于 2012-11-30T11:08:55.030 に答える