2012-08-30 2 views
9

내가 이런 프로젝트가있는 setup.py : 추가 데이터 파일

├── 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에서 일부 데이터가 필요하다는 내부

. 심지어 내 egg-info 소스에

IOError: [Errno 2] No such file or directory: 'data/untochable.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와 프로젝트를 설치할 때까지 그것을 잘 작동합니다 데이터 파일을 찾을 수 없습니다.

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

내가 여기 뭔가를 놓친 적이 있습니까?

감사합니다.

편집 : .py에 특별한 것을 추가해야합니까?

와 나는이를 추가 할 수 있습니다 어쩌면 시도

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

사용을 뭔가 - 난 잘 모르겠지만 그것을 사용하지 않았지만 방향 수 있습니다 – zenpoy

+0

난 파이썬 2.6에있어! 몇 가지 이유로 지금 업그레이드 할 수 없습니다! – Shahinism

답변

6

첫 번째 문제는 내 데이터 파일을 가져 오지 않은 것입니다 난 그냥 같이 untouchable.dat 사용 파일에 MANIFEST.in 파일을 첨부하십시오. 나는 이것을 다음과 같이 가져 왔습니다 :

include negar/data/*.dat 

그 후 내 데이터 파일을 이미 패키지 설치와 함께 가져 왔습니다. 하지만 데이터 파일을 열 때 실수를해서 파이썬이 찾지 못했습니다. 이 질문에 올바른 방법 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

나는 그들이 MANIFEST.in 또는 파일을 포함하는 방법을 변경 파이썬 2.7에 data_files

data_files = [('', ['negar/data/untouchable.dat'])],