2014-01-18 6 views
3

그래서 일반적으로 패키지로 만들고 세상과 공유하려는 작은 응용 프로그램을 만들었습니다. setuptools를 사용하여 응용 프로그램 패키징 자습서를 읽었습니다. 내가 한 곳에서 갇힐 때까지 잘 가고 있었다. 이 디렉토리 구조를 감안할 때setuptools를 사용하여 패키지 된 파이썬 모듈을 설치할 때 일부 파일을 사용할 수없는 이유는 무엇입니까?

- MyApp 
    - setup.py 
    - README.md 
    - LICENSE.txt 
    - MANIFEST.in 
    - myapp 
    - __init__.py 
    - index.py 
    - utils 
     - __init__.py 
     - helper.py 
     - some_dump.pickle 
     - images 
     - folder_1 
      - image_1.jpg 
      - image_2.jpg 
     - folder_2 
      - another_image_1.jpg 
      - another_image_2.jpg 
     - sounds 
     - sound_1.wav 
     - sound_2.wav 

, 나는 myappmyapp.utils을 포함하는 목록으로 packages 옵션으로 setup.py 파일을 만든 :

내 디렉토리 구조는 다음과 같은 것입니다. 나는 패키지하기를 원하지만 기본적으로 포함되지 않은 모든 파일을 포함하는 MANIFEST.in 파일을 만들었습니다.

include README.md 
include LICENSE.txt 
include myapp/utils/*.pickle 
include myapp/utils/sounds/*.wav 
include myapp/utils/images/folder_1/*.jpg 
include myapp/utils/images/folder_2/*.jpg 

문제는 배포 패키지 (.ZIP)에 필요한 모든 파일이 생성된다는 것입니다,하지만 난 시도 배포 패키지를 사용하려고하면하여 설치 다음은 매니페스트 파일의 내용입니다 이미지 나 소리, 피클 파일이 보이지 않습니다. 즉, python setup.py install을 실행하면 build/lib 폴더에 이러한 파일이 표시되지 않습니다. 그 이유가 무엇인지 잘 모르겠습니다. 아무도 나를 도와 줄 수 없습니까?

감사합니다.

+3

참조하십시오. StackOverflow 관련 질문을 분리하십시오. – pts

+1

@pts : 일반적으로, 그렇습니다.하지만 OP는이 두 질문에 패키징 문제의 공통 근본 원인이 있는지 물어 봅니다. – GreenAsJade

+1

두 번째는 아마도 첫 번째 원인의 원인이 아닙니다. 한편, 일반적으로 비 코드 파일은 패키지의 중간에 설치하지 않습니다. 리소스 파일 API를 대신 사용하십시오. 그러나 IIRC (다소 오래되었습니다), PyQt는'setuptools' /'pkg_resources' 파일 대신에 자체 리소스 파일 API를 가지고 있습니다. – abarnert

답변

3

매니페스트는 배포가 아닌 설치 관련 정보입니다. 설치 및 WHERE 무엇을 setup.py에 지정해야합니다

setup(..., 
    data_files=[(whereto1, [file1, file2]), 
       (whereto2, [file3])] 
) 

당신이 몇 가지 질문 (예를 들어, 설치 리소스 파일에 대한 하나, 그리고 PyPi에서 PyQt는 설치에 대한 하나)가 마치 http://docs.python.org/3/distutils/setupscript.html#installing-additional-files

+0

고마워, 나는 그 대답 바로 뒤에 그것을 얻을 수 있었다. :-) – gravetii