다른 데이터 디렉토리와 여러 서브 패키지를 포장 :파이썬 내가 코드 <code>something.py</code>와 함께 <code>foobar</code> 및 <code>alphabet</code> 데이터 디렉토리와 같은 디렉토리의 구조를 가지고
\mylibrary
\packages
\foobar
foo.zip
bar.zip
\alphabet
abc.zip
xyz.zip
something.py
setup.py
그리고 목적은 사용자가 설치할 핍 수 있도록이다 같은 모듈 :
pip install mylibrary[alphabet]
는 그리고는 packages/alphabet/*
데이터와 파이썬 코드의 데이터 만 포함 할 수 있습니다. 비슷한 동작이 pip install mylibrary[foobar]
에 대해서 가능해야합니다.
사용자가 지정하지 않고 설치하는 경우
는 :pip install mylibrary
는 그런 다음
packages/
에서 모든 데이터 디렉토리를 포함합니다.
현재, 나는 다음과 같은 Python3.5와 setup.py
쓰기 시도했다 : 사용자가 pip install mylibrary
을 수행 할 때 모든 데이터 디렉토리와 분포를 생성합니다
import glob
from setuptools import setup, find_packages
setup(
name = 'mylibrary',
packages = ['packages'],
package_data={'packages':glob.glob('packages' + '/**/*.txt', recursive=True)},
)
.
setup.py
을 어떻게 변경하여 pip install mylibrary[alphabet]
과 같은 특정 pip 설치가 가능합니까? 사전에
setup(
…,
extras = {
'alphabet': ['alphabet'],
'foobar': ['foobar'],
}
)
키 : 그 foobar
extras
등을 alphabet
를 추가 한 후 pip install mylibrary[alphabet]
이
pip install mylibrary
pip install alphabet
의미로
'setup.py'는 패키지가 일반 또는 추가로 설치되는지 여부를 알 수 없습니다. 이 정보는 설치 도구 (예 :'pip' 또는'easy_install')에 의해서만 사용되며 설정 스크립트로 전달되지 않습니다. 설정 스크립트에서 정의한'엑스트라 '는 대충 말하면 설치 프로그램에 대한 추가 지시 사항입니다 : "엑스트라 키워드를 얻으면 패키지와 추가 패키지 번들을 설치해야합니다", 바로 그 것입니다. – hoefling