私のsetup.pyスクリプトにデータファイルを含める際に問題があります。次のように私のパッケージがセットアップされている:データファイルをsetup.pyに含める
my_package/
setup.py
MANIFEST.in
my_package/
__init__.py
access_data.py
data_files/
my_data_file.csv
私はそれがaccess_data.py
で読み取ることができるように、インストール時にmy_data_file.csv
ファイルを含めたいです。
setup(...,
packages=['my_package'],
package_data={'my_package': ['./my_package/data_files/my_data_file.csv']},
include_package_data=True
)
私もMANIFEST.in
内のファイルが含ま::私はsetuptools
でpackage_data
キーワードを使用そうするために
recursive-include my_package/data_files *
setup.py
は正常に動作しているようだし、エラーをスローしません。しかし、パッケージをインポートすると、my_data_file.csv
が見つからないため、ファイルが見つかりませんでした。私は他のスタックオーバーフローの質問(特にthis one)を参照しようとしましたが、私が間違っていることを理解できません。 setup.pyに必要なデータファイルを含めるにはどうすればいいですか?あなたのケースでは
大文字と小文字を区別しないファイルシステムですか? 'manifest.in'は本当に' MANIFEST.in'でなければなりません。しかし、MANIFEST.inがソース配布(sdist)のために使われているので、それはどうにも関係しません。 – phd
まず、デバッグでは、大きな問題を多くの小さな問題に分割することが考えられます。ステップバイステップでそれをやりましょう。ステップ番号1:ディストリビューション(sdist、eggまたはwheel)に実際に 'my_data_file.csv'が含まれていることを確認します。もしそうでなければ、 'setup.py'を含めて修正してください。ステップ番号2: 'my_data_file.csv'がインストールされていることを確認します。ステップ3 - ファイルが存在していてもアクセスできない理由をデバッグします(ファイルへのパスが間違っていますか?) – phd
あなたの行は 'package_data = {'my_package':['data_files/my_data_file.csv']}' ' ( 'my_package'パッケージの下に' my_package'ディレクトリはありません) –