당신의 setup.py
, 그냥 일반 파이썬 코드 당신이 동일한 일을 할 수 있도록 소스 코드에서 할 설치 스크립트에서.
문서는 2.X 코드 대 3.X을 수행하기위한 sys.version_info
에 전환하는 방법을 보여 주지만 2.7 대 2.6에 대해 동일한 방식으로 작동합니다. 그래서, 코드가이 일을하는 경우 :
if sys.version_info < (2, 7);
from ordereddict import OrderedDict
else:
from collections import OrderedDict
를 ... 다음 설치 스크립트는이 작업을 수행 할 수 있습니다
import sys
from setuptools import setup
extra_install_requires = []
if sys.version_info < (2, 7):
extra_install_requires.append('ordereddict>=1.1')
setup(
# ...
install_requires = [...] + extra_install_requires,
# ...
)
을 다른 한편으로는, 코드가이 일을하는 경우 :
을
try:
from collections import OrderedDict
except ImportError:
from ordereddict import OrderedDict
... 은 일 수 있으며 version_info
일 수 있습니다. 이 :
extra_install_requires = []
try:
from collections import OrderedDict
except ImportError:
extra_install_requires.append('ordereddict>=1.1')
어느 쪽이든, (사용자가 이미 1.1이 이상하지 않는 한)는, 예를 들어, pip-2.5 install
이 패키지는 ordereddict
모듈을 다운로드하고 설치하는 것입니다 경우, 2.7이면 안심할 수 없습니다.
는 사전 구축 된 계란을 배포 할 찾고 있다면, 다음 네, 파이썬 2.6 및 2.7에 대해 서로 다른 끝날 것입니다. 예를 들어,
python2.6 setup.py bdist_egg && python2.7 setup.py bdist_egg
이후에
dist/Foo-0.1-py2.6.egg
과
dist/Foo-0.1-py2.7.egg
으로 끝나고 둘 다 배포해야합니다.
의미가 있습니다. 신속하고 철저한 답변을 주셔서 감사합니다. – Paul
if sys.version_info <(2, 7);에 세미콜론이 있습니다. – hepcat72