setup.py
そのため:
bdist_Egg
)にはサンプル構成ファイルが含まれ、{prefix}/etc
ディレクトリ?サンプルのプロジェクトソースディレクトリは次のようになります。
bin/
myapp
etc/
myapp.cfg
myapp/
__init__.py
[...]
setup.py
Setup.pyは次のようになります。
from distutils.command.install_data import install_data
packages = ['myapp', ]
scripts = ['bin/myapp',]
cmdclasses = {'install_data': install_data}
data_files = [('etc', ['etc/myapp.cfg'])]
setup_args = {
'name': 'MyApp',
'version': '0.1',
'packages': packages,
'cmdclass': cmdclasses,
'data_files': data_files,
'scripts': scripts,
# 'include_package_data': True,
'test_suite': 'nose.collector'
}
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
setup(**setup_args)
setuptoolsは、ビルド環境とインストール環境の両方にインストールされます。
'include_package_data'
コメントアウトされているかどうかは役に立ちません。
私はこの問題についていくつかの調査をしており、その答えはsetuptoolsのドキュメントにあると思います: http://peak.telecommunity.com/DevCenter/setuptools#non-package-data-files
次に、答えがあると思う抜粋を引用します。
非パッケージデータファイル
Distutilsは通常、一般的な「データファイル」をプラットフォーム固有の場所(例:/ usr/share)にインストールします。この機能は、ドキュメント、サンプル設定ファイルなどに使用することを目的としています。ただし、setuptoolsはこれらのデータファイルを別の場所にインストールしません。これらは、Pythonモジュールおよびパッケージと共に)Eggファイルまたはディレクトリ内にバンドルされています。データファイルには、Resource Management API [...]を使用してアクセスすることもできます。
ちなみに、このデータファイルのカプセル化は、ユーザーのマシンの任意の場所にデータファイルを実際にインストールできないことを意味します;これは機能であり、バグではありません。ドキュメントまたはデータファイルをユーザーの指定した場所に抽出およびコピーするスクリプトを、ディストリビューションにいつでも含めることができます。関連するデータファイルを単一のディレクトリに配置する場合は、resource_filename()をディレクトリ名とともに使用して、shutilモジュールでコピーできるファイルシステムディレクトリを取得できます。 [...]