2017-12-23 3 views
1

python setup.py sdist을 패키지화하려는 디렉토리 외부에서 실행하여 파이썬 소스 배포판을 만들고 싶습니다. 이것을 할 길을 찾지 못하는 것 같습니다. 나는 setup.pyMANIFEST.in을 동적으로 생성하는 스크립트를 가지고 있는데, 파이썬이 그 파일을 "다른 디렉토리"에있는 소스의 sdist를 생성하도록 사용하고 싶습니다.다른 디렉토리에서 python sdist를 만들 수 있습니까?

사용자가 setup.py 등을 사용하여 sdist를 만들 수있는 스크립트를 만드는 중입니다. "이 디렉토리와 모든 것을 패키지에 담아 라."라고 말합니다. 그래서 setup.pyMANIFEST.in (recursive-include * 모든 파일을 가지고) 파이썬 tempfile.mkdtemp 디렉토리 (/tmp/whatever과 같은 관련없는 파일 경로에 있음)에서 생성합니다. 그 파일들은 나중에 정리할 수 있습니다. 그러나 그것들을 패키지화하는 데 사용할 수 없습니다. 예배 규칙서. 원본 디렉터리에 파일을 만들고 싶지 않습니다. 그렇지 않으면 DIST/ - 폴더가 만들어 기본 곳

답변

0

당신 can use setuptools 년대, --dist-dir=DIR/-d DIR 옵션을 지정합니다. 즉, 출력 디렉토리가 변경됩니다.

예컨대 :

python setup.py sdist -d /tmp/whatever 

당신이 distutils.core를 사용하는 경우 대신 from distutils.core import setup을 사용하는 당신은 from setuptools import setup을 사용할 수 있습니다. 어디서 출력 DIST 파일을 지정

import sys 
from os import path 
# ... 

# Add other folders to sys.path 
sys.path.append('/tmp/whatever') 
sys.path.append(path.join(path.abspath('..'), 'some', 'folder')) 
+0

을 다음 소스 디렉토리, 당신이 sys.path에 디렉토리를 추가 할 수 있습니다 생각에서 오는 다음 setup() 자동으로 콘텐츠 파일을 발견 할 것입니다 위치를 정의하기 위해

맞았 니? 나는 "여기에있는 setup.py와 MANIFEST.in 파일을 사용하여 dir X에서 소스 파일을 패키징하라"라고 말할 수 있어야합니다. – chacmool

+0

예, 답을 _setup.py_의''setup()''에있는 다른 폴더를 추가하는 방법에 대한 세부 사항으로 업데이트했습니다. 이게 도움이 되니? –

+0

고마워, 나는 이것을 시험해보고 그것이 효과가 있는지보기! 가능한 경우 여기에서 업데이트됩니다. – chacmool