문제

버전에 특정한 파이썬에서 모듈을 가져 오는 데 가장 적합한 방법은 무엇입니까? 제 사용 사례는 Python 2.3 환경에 배치 될 코드를 작성하고 몇 달 안에 Python 2.5로 업그레이드됩니다. 이것:

if sys.version_info[:2] >= (2, 5):
    from string import Template
else:
    from our.compat.string import Template

아니면 이거

try:
    from string import Template
except ImportError:
    from our.compat.string import Template

어느 경우도 똑같이 정확하고 올바르게 작동하지만 어느 것이 바람직한 지 알고 있습니까?

도움이 되었습니까?

해결책

항상 두 번째 방법 - 다른 파이썬 설치가 무엇인지 알 수 없습니다. Template 덜 중요한 특정 사례이지만 버전 관리 대신 기능을 테스트하면 항상 더 강력합니다.

그것이 내가 만드는 방법입니다 testoob Python 2.2-2.6 지원 : 작동 할 때까지 모듈을 다양한 방식으로 가져 오려고합니다. 또한 타사 라이브러리와도 관련이 있습니다.

다음은 극단적 인 사례입니다. ElementTree가 나타나기위한 다양한 옵션을 지원합니다.

try: import elementtree.ElementTree as ET
except ImportError:
    try: import cElementTree as ET
    except ImportError:
        try: import lxml.etree as ET
        except ImportError:
            import xml.etree.ElementTree as ET # Python 2.5 and up

다른 팁

나는 아마도 두 번째 것이 바람직하다고 주장 할 것이다. 때로는 새로운 버전의 Python에서 모듈을 이전 버전으로 설치할 수 있습니다. 예를 들어, WSGIREF에는 Python 2.5가 포함되어 있지만 이전 버전으로 설치하는 것은 전적으로 드문 일이 아닙니다 (Python 2.3 UP과 함께 작동한다고 생각합니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top