설치시 선택적 패키지.
setup.py
스크립트에 대해 이야기하고 있다고 가정합니다. 당신이 그것을 바꿀 수 :
# mypackage/setup.py
extras = {
'with_simplejson': ['simplejson>=3.5.3']
}
setup(
...
extras_require=extras,
...)
는 다음 중 하나를 수행 할 수
pip install mypackage
,
pip install mypackage[with_simplejson]
을, 후자는 simplejson>=3.5.3
를 설치하기로.
모든 것을 설치하고 알려진 양호한 버전 인 fallback 대신 을 사용하면 작동하는 패키지의 하위 집합을 설치하는 것이 좋습니다.
실행시 선택적 패키지.
두 가지 패키지 세트를 설치 한 후에는 을 사용해야 사용할 수 있는지 확인하십시오. 예 : 당신의 json
수입 :
는
try:
# helpful comment saying this should be faster.
import simplejson as json
except ImportError:
import json
또 다른 더 복잡한 예 : 당신은 또한 일부 패키지에서이 패턴을 찾을 수 있습니다
try:
# xml is dangerous
from defusedxml.cElementTree import parse
except ImportError:
try:
# cElementTree is not available in older python
from xml.cElementTree import parse
except ImportError:
from xml.ElementTree import parse
그러나이 :
는 는
try:
optional_package = None
import optional.package as optional_package
except ImportError:
pass
...
if optional_package:
# do addtional behavior
는
선택 사항을 의미한다고는 패키지에 실패 할 경우 설치하면 설치가 방해받지 않고 완료 될 수 있습니다. –
그래,하지만 패키지에 * 의존하지 않으면 왜 * 필수 패키지 *에 넣을 까? 나는 단순히 요점을 얻지 못한다. – Constantinius
나는 그것을'required'리스트에 넣고 싶지 않습니다; 그게 내가 물어 보는거야 - 거기에 또 다른 옵션이 있습니까? 그렇다면 사용할 수 있으면 포함시킬 수 있습니까? –