2009-08-28 3 views
2

파이썬의 2.6.x로 이동, 그러나 그것은 가능하지 않습니다 때문에 내가 사용하는 외부 패키지의 많은 아직 없어요. (예를 들어 numpy처럼).내 물건을 개발하고 내가 3.X 몇 가지 코드를 이동하려는</p> <p>파이썬 2.5.2에서 실행되는

그래서 중간 단계를 수행하고 2.6.2로 이동합니다.

내 질문 : 외부 모듈이 2.5.2에서 실행되지만 명시 적으로 2.6.x와 작동한다고 명시하지 않은 경우 정상적인 것으로 간주 할 수 있습니까? 안 그래요?

+3

시도해 볼 수 있다고 생각 하나? – SilentGhost

+0

괜찮을 것입니다. 나는 2.6으로 전환했을 때 심각한 문제가 없었습니다. –

답변

8

대부분 제대로 작동합니다. 예를 들어 sha 모듈과 같이 DeprecationWarnings이 발생할 수도 있지만 무시해도됩니다. 이것은 내 직감이다. 물론 문제를 일으키는 특정 문제에 부딪 힐 수있다. 어쨌든, 이러한 이상 빠른 보면 코드가 작업을 필요로하는지 여부 꽤 빨리 말해야한다 :

+0

2.6에서 우리의 응용 프로그램을 30,000 줄 테스트했습니다. 잘됐다. 예외 처리에서 하나의 작은 문제 (.message 특성이 사용되지 않음)가 나를 잡았습니다. –

2

당신은 그을지지 않습니다. 그러나 작동하는지 여부는 쉽게 테스트 할 수 있어야합니다.

또 다른 1 년 또는 2 년 동안 3.x로 옮기려고하지 마십시오. 2.6에는 3.0 버전의 기능 중 상당수가 이미 이식되어 있으므로 일단 변경하면 전환이 그렇게 나쁜 것은 아닙니다.

1

2.6 설명서의 What's New 섹션을 읽어 보는 것이 좋습니다. 2.6은 하위 호환이 가능하도록 설계되었지만 코드를 잡을 수있는 몇 가지 변경 사항이 있습니다. 예를 들어, hasattr()은 모든 오류를 삼키기 위해 사용되었으며, 이제는 SystemExitKeyboardInterrupt을 제외한 모든 코드를 삼켜 버렸습니다. 알아 차릴 지 모르지만 차이가 나는 곳에서는 이상한 코드가있을 수 있습니다.)

또한이 코드는 앞으로 패키지를 읽을 때 (예 : 2.6에서 동의어 인 경우에도 str과 바이트를 구분할 때) 쉽게 3.x로 이동할 수있는 변경 사항을 나타냅니다.

3

주요 문제는 사용중인 C 코드 확장과 함께 올 수 있습니다. 시스템에 따라 다르지만 특히 Windows에서 2.5 용으로 컴파일 된 이러한 확장은 전혀 작동하지 않을 수 있습니다 (또는 적어도 조용하게 안정적으로) 2.6. 이는 과거에 2.4에서 2.5로 이전 한 것과는 크게 다르지 않습니다.

가장 간단한 해결책 (IMHO)은 이러한 확장 프로그램의 소스를 가져 와서 다시 설치하는 것입니다. 대부분의 플랫폼 및 대부분의 확장 프로그램의 경우 python setup.py install (설치에 따라 sudo 또는 관리자로 로그인 할 수 있음) 작동합니다. 정확한 "개발자"패키지를 다운로드하여 설치해야 할 수도 있습니다. Mac OS X에서 Xcode를 설치하거나 최소한 gcc 하위 집합을 설치해야하지만, 설치하는 것이 가장 간단합니다. 예를 들어, Macromedia에 가입해야합니다. Apple Developer Connection에서 무료로 다운로드하여 대형 XCode 패키지를 다운로드하십시오.)

이 방법이 현재 Windows에서 얼마나 번거롭지 않은지, 즉 mingw 또는 Microsoft의 "express"버전 VS와 같은 비공식 컴파일러를 사용할 수 있는지 여부는 확실하지 않습니다. 올바른 컴파일러를 얻으려면 $$을 MS에 쉘 아웃해야합니다. 그러나 대부분의 제 3 자 확장 기능 개발자는 Windows 사용자가 재 컴파일해야하는 것이 Windows에서 번거롭기 때문에 (또는 적어도 사용되는 경우가 많기 때문에) 준비된 Windows 바이너리를 제공하기 위해 나섰습니다.6은 이미 써드 파티 확장 관리자가 광범위하게 지원하고 있기 때문에 (결국 간단한 재 컴파일이기도하기 때문에 운이 좋으면 확장 프로그램에 이미 필요한 모든 미리 컴파일 된 바이너리를 찾을 수 있습니다. 용도.