3

一部のサブパッケージに Python 以外のデータ ファイルを含む Python アプリがあります。私は、ディストリビューションを作成するときに、これらすべてのファイルを自動的に含めるためinclude_package_dataに my のオプションを使用しています。setup.pyそれはうまくいきます。

今、私はpy2exeを使い始めています。私が持っていることを確認include_package_data=Trueし、すべてのファイルを含めることを期待していました。しかし、そうではありません。Python ファイルのみを に配置するlibrary.zipため、アプリが動作しません。

py2exe にデータ ファイルを含めるにはどうすればよいですか?

4

4 に答える 4

5

私はpy2exeにオプションを与えることでそれを解決しましたskip_archive=True。これにより、Python ファイルlibrary.zipが単純にプレーン ファイルとして配置されました。次にdata_files、データ ファイルを Python パッケージ内に配置していました。

于 2010-04-30T23:29:41.477 に答える
3

これが、py2exeですべてのファイルを.zipにバンドルするために使用するものです。データファイルを取得するには、zipファイルを開く必要があることに注意してください。py2exeは呼び出しをリダイレクトしません。

setup(windows=[target],
      name="myappname",
      data_files = [('', ['data1.dat', 'data2.dat'])],
      options = {'py2exe': {
        "optimize": 2,
        "bundle_files": 2, # This tells py2exe to bundle everything
      }},
)

py2exeオプションの完全なリストはここにあります。

于 2010-04-30T22:25:20.517 に答える
3

include_package_datadistutils オプションではなく、setuptools オプションです。従来の distutils では、data_files = []ディレクティブを使用して、データ ファイルの場所を自分で指定する必要があります。py2exe同じです。ファイルが多数ある場合は、globまたはos.walkを使用してそれらを取得できます。たとえば、matPlotLib のようなモジュールを py2exe で動作させるために setup.py に必要な追加の変更(データファイルの追加) を参照してください。

関連するメーリング リストのディスカッションもあります。

于 2010-04-30T21:51:16.053 に答える