13

小さなPythonプロジェクトをzipまたはeggファイルとしてパッケージ化して配布できるように取り組んでいます。プロジェクトの構成ファイルを含める方法は 2 つありますが、どちらも同じ結果になるようです。

方法 1:

次のコードを setup.py に含めます。

from distutils.core import setup

setup(name='ProjectName', 
      version='1.0', 
      packages=['somePackage'],
      data_files = [('config', ['config\propFiles1.ini', 
                                'config\propFiles2.ini', 
                                'config\propFiles3.ini'])]
      )

方法 2:

次のコードを setup.py に含めます。

from distutils.core import setup

setup(name='ProjectName', 
      version='1.0', 
      packages=['somePackage']
      )

次に、次の行を含む MANIFEST.in ファイルを作成します。

include config\* 

メソッド間に違いはありますか?どちらが好ましいですか?MANIFEST.in ファイルがまったく必要ないため、私は最初のものに傾く傾向があります。ただし、最初の方法では各ファイルを個別に指定する必要がありますが、2 番目の方法ではフォルダー全体を含めることができます。他に考慮すべきことはありますか?標準的な慣行は何ですか?

4

1 に答える 1

29

MANIFEST.in は、 を呼び出すときにどのファイルを配布 zip ファイルに入れるかを制御しますpython setup.py sdist。インストールされるものは制御 しません。data_files(またはそれ以上package_data)インストールされるファイルを制御します(また、ファイルがzipファイルに含まれていることも確認すると思います)。package_dataインストールしないファイル (ドキュメントなど) や、使用する Python コードではないファイル (イメージやテンプレートなど) には MANIFEST.in を使用します。

于 2010-06-03T19:24:01.923 に答える