2012-03-11 4 views
3

패키지 데이터를 포함한 distutils로 패키지를 만들었습니다. 내 패키지의 tar.gz를 볼 때 예상되는 파일을 보지만 패키지 설치 후 (pip 또는 'python setup.py install'에 의해) 패키지 데이터가 없습니다. 오직 파이썬 스크립트가 포함되어 있습니다. 내 setup.py은 다음과 같습니다 설치 될'패키지 데이터'파일은 어디에 있습니까?

# py3.3 
#from packaging.core import setup 
# py3.2 
from distutils.core import setup 

setup(
    name = 'mypkg', 
    version = '0.7dev', 
    author = 'Projekt Alef', 
    author_email = '[email protected]', 
    packages = [ 
     'my_pkg', 
     'my_pkg/tests', 
     'my_pkg/plugins', 
    ], 
    #scritps=['bin/setup.sh',], 
) 
+0

'setup.py'를 포함 할 수 있습니까? –

+0

여기에 있습니다. [setup.py] (http://pastebin.com/a9Bap8vP) – xliiv

+1

패키지는 점으로 구분 된 이름 목록이어야합니다. mypkg/tests가 아닌 mypkg.tests 여야합니다. –

답변

2

패키지 데이터는 setup() 함수에 전달되는 package_data={} 사전으로 포함되어야한다. 당신은 단지 (테스트를 설치하지 선호 할 수 있습니다, 또한

package_data = { 
    'exceptional_middleware': [ 'templates/http_responses/*.html' ], 
} 

: 각 사전과 같은, 그것으로 /에서 설치하는 모듈 (패키지)를 설치하고 데이터 파일을 찾을 수있는 패턴 목록을 제공합니다 packages 목록의 pkg/tests을 드롭하십시오.

+0

MANIFEST.in은 어떻습니까? MANIFEST.in으로 충분하다고 생각했습니다. 더 원하는 '패키지 데이터'파일은 모두 'python setup.py sdist'출력에 포함됩니다. 문제는 설치 후 패키지 (원하는 모든 파일 포함)가 '패키지 데이터'파일을 잃어버린 것입니다. O_o – xliiv

+1

sdist에 뭔가가 있으면 설치를 원하는 사람에게 배포된다는 것을 의미합니다 * 설치되지는 않을 것입니다. MANIFEST의 세부 사항을 기억하지 못합니다. package_data와 비교하면 파이썬 문서 사이트가 다운되었습니다. 여기에있는 예를 살펴보면 두 가지 모두에 있지만 어리석은 것처럼 보이지만 분명히 작동합니다. –

+0

당신은 100 % 맞습니다. Manifest.in은 충분하지 않습니다 ... 이를 달성하려면 설치 기능에 package_data var을 배치해야합니다. O_o 고마워요 :) – xliiv