2012-08-30 9 views
9

をsetup.pyの:のpythonプロジェクトにデータファイルを追加し、私はこのようなプロジェクト持って

├── CHANGES.txt 
├── LICENSE 
├── MANIFEST.in 
... 
├── docs 
│   └── index.rst 
├── negar 
│   ├── Negar.py 
│   ├── Virastar.py 
│   ├── Virastar.pyc 
│   ├── __init__.py 
│   ├── data 
│   │   ├── __init__.py 
│   │   └── untouchable.dat 
│   ├── gui.py 
│   ├── gui.pyc 
│   ├── i18n 
│   │   ├── fa_IR.qm 
│   │   └── fa_IR.ts 
│   └── negar.pro 
├── setup.py 
... 

と内部の私のファイルVirastar.pydata.untouchable.datからいくつかのデータを必要とすることを。それは、データファイルは、それがこのエラーを返すことを必要とするとき、私は私のプログラムを起動したときに後

setup(
    ... 
    include_package_data=True, 
    packages = find_packages() + ['negar'], 
    package_dir={'negar': 'negar'}, 
    package_data={'negar': ['data/*.dat']}, 
    entry_points={ 
     'console_scripts': [ 
      'negar = negar.Negar:main', 
     ], 
    }, 
    ... 
) 

:私はこのsetup.pyでプロジェクトをインストールするまでそれが正常に動作し

IOError: [Errno 2] No such file or directory: 'data/untochable.dat' 

も、私のegg-infoソースにデータファイルが見つかりません:

... 
negar/Negar.py 
negar/Virastar.py 
negar/__init__.py 
negar/gui.py 
negar/data/__init__.py 

私はここで何かを見逃していますか?

ありがとうございます。

編集: .pyに特別なものを追加する必要がありますか?

と私はこれを追加する必要があります。私はこのようuntouchable.datを使用:

f = codecs.open('data/untouchable.dat', encoding="utf-8") 
+0

を使用し、彼らはMANIFEST.inにファイルをインクルードする方法を変更したり、何か - 私は確信していないし、それを使用していないが、それは方向になる可能性があります – zenpoy

+0

私はPython 2.6にいる!何らかの理由で私は今アップグレードできません! – Shahinism

答えて

6

最初の問題は、私は私のデータファイルをインポートしていなかったということですファイルMANIFEST.inでパッケージに入れます。私は次のようにインポートしました:

include negar/data/*.dat 

その後、私のデータファイルはすでに私のパッケージと共にインストールされています。データファイルを開いたときに間違いがあったので、pythonはそれを見つけることができませんでした。この質問は、正しい方法 Python Access Data in Package Subdirectoryを見つけるために私を助けて、今、私はこのようなものを使用します。

import os 
this_dir, this_filename = os.path.split(__file__) 
DATA_PATH = os.path.join(this_dir, "data", "data.txt") 
print open(DATA_PATH).read() 
2

多分試してみてください。

package_data={'negar/data': ['data/*.dat']}, 
+0

いいえ、もう一度動作しません!同じエラー。 – Shahinism

6

を私のpython 2.7でdata_files

data_files = [('', ['negar/data/untouchable.dat'])], 
関連する問題