2009-07-04 4 views
3

얘들 아, 내가 업그레이드 파이썬의 문제가 2.4에서 2.6 :CentOS의 Python2.4에서 Python2.6으로 전환. 모듈 마이그레이션 문제

내가 가진 (전체)에 CentOS 5
이 /usr/lib/python2.4/
에 거주하는 파이썬 2.4을 가지고 추가 모듈 내가 /usr/local/lib/python2.6/
에서 소스에서 파이썬 2.6을 구축 한 /usr/lib/python2.4/site-packages/

에 살고있는 나는 기본 파이썬을 설정 한
2.4 용 이전 모듈은 pythonpath를 벗어나 "손실"됨
부분적으로 yum이 깨졌습니다 ("yum 모듈이 없습니다")

모듈을 Python2.6으로 마이그레이션/설치하는 올바른 방법은 무엇입니까? 모듈은 파이썬 2.6에서 실행됩니다 몇 가지 옵션이 있습니다

답변

3

깨지지 않았으며 단순히 설치되지 않았습니다. 해결책은 2.6에 설치하는 것입니다. 하지만 먼저 그 일을해야 하는지를 알아야합니다 ...

예, Python은 설치되었을 때 python 명령을 설치된 버전으로 바꾸십시오 (--alt-install을 사용하지 않는 한). 당신은 문제가 무엇인지 정확히 진술하지 않으므로 추측하겠습니다. 문제는 파이썬을 사용하는 많은 로컬 명령이 파이썬 2.6이 아닌 파이썬 2.4에서 실행되기 때문에 실패합니다. 그 맞습니까?

그렇다면 간단히/usr/local/bin/python을 삭제하고/usr/bin/python이 /usr/bin/python2.4에 대한 심볼릭 링크인지 확인하십시오. 그런 다음 python2.6을 실행하려면 python2.6을 입력해야하지만, 괜찮습니다. 그것이 최선의 방법입니다. 그런 다음 패키지에 2.6을 설치하기 만하면됩니다.

내 추측이 잘못되어 실제로 2.6에서 모든 패키지를 설치해야한다면 너무 걱정하지 않아도됩니다. 먼저 setuptools를 설치하십시오. 그것은 easy_install을 스크립트를 포함, 당신은 그것은 pypi.python.org에서 모듈을 다운로드하여 설치합니다

easy_install <modulename> 

와 모듈을 설치할 수 있습니다. 또한 종속성이있는 모든 모듈을 설치합니다. easy_install은 distutils를 인스톨러로 사용하는 모듈을 설치할 수 있습니다. 이렇게하면 해당 모듈의 90 %를 쉽게 설치할 수 있습니다.

모듈에 C- 구성 요소가 있으면 컴파일하고 라이브러리 헤더가 필요하며 더 많은 작업이 가능하며 표준 CentOS 방식으로 설치할 수 있습니다.

라이브러리는 일반적으로 특정 버전 용이기 때문에 버전 간에는 기호 링크를 사용하지 마십시오. 2.4와 2.6의 경우 .pyc 파일은 호환되지만 (100 % 확실하지는 않습니다) 작동한다고해도 C 을 사용하는 모든 모듈은이됩니다. 그리고 다른 Python 버전도 호환되지 않는 .pyc 파일을 가지고있을 것입니다. 그리고 그렇게한다면, 대부분의 파이썬 사람들이 그렇게한다면 도움을주지 않을 것이라고 확신합니다. ;-)

일반적으로 시스템 파이썬을 "깨끗하게"유지하려고합니다. 나는 포장 도구와 함께 설치되지 않은 것을 설치하지 않습니다. 대신 virtualenv 또는 buildout을 사용하여 모든 응용 프로그램에 종속성이있는 고유 한 파이썬 경로를 갖도록합니다. 그래서 모든 단일 프로젝트에는 기본적으로 라이브러리 세트가 있습니다. 그렇게 쉽게된다.

+1

감사합니다. 기본 파이썬을 2.4로 되 돌린 후, yum은 다시 살아납니다. –

0

...

  1. , 당신은 단순히 2.4 사이트 패키지 2.6 사이트 패키지 디렉토리에서 그들에 대한 기호 링크를 만들 수 있습니다 예배 규칙서.

  2. 2.6에서 실행되지 않으면 2.6에 대해 다시 컴파일하거나 최신 버전을 설치해야 할 수 있습니다.

"python setup.py" ... 당신은 추가 문제가 발생하는 경우 serverfault.com에 게시 할 수 있습니다

를 호출 할 때 그냥 2.6를 사용하고 있는지 확인합니다.

+0

감사합니다 gahooa! 현재 2.4/site-packages에는 약 100 개의 모듈이 있습니다. 나는 매우 행복하지 않다. tp는 100 개의 심볼릭 링크를 만든다. 그리고 setup.py를 실행하기 위해서는 모든 소스를 찾고 적절한 순서의 설치를 위해 모든 의존성을 추측해야한다. "책에서"해결책이 있어야한다고 생각합니다. –

0

일부 Python 라이브러리는 여전히 Python 2.6에서 액세스 할 수 없으므로 dist-packages으로 변경됩니다.

이 경우 유일한 방법은 사이트 패키지에서 생성 된 모든 내용 (예 : make install)을 dist 패키지로 이동하고 sym-link를 만드는 것입니다.

  • 유형의
  • "파이썬 setup.py 설치"

    1. 압축을 풀고 모듈 소스를 디렉토리 :

    0

    easy_install을 좋은 일이지만, 그냥 모듈을 설치하기위한 낮은 수준의 방법이 있습니다 물론 필요한 Python 인터프리터 버전을 설치해야합니다. 확인을 위해 다음을 입력하십시오 :

    파이썬 -V