다양한 버전의 Python 사용

다양한 버전의 Python 사용

배경:

내가 개발하는 Python 프로그램은 서로 다른 Python 버전에서 실행되어야 하므로 내 컴퓨터에는 서로 다른 버전의 Python이 설치되어 있습니다.

저는 FC 13을 사용하고 있으므로 Python 2.6 /usr/bin/python2.6이 사전 설치되어 있습니다 /usr/lib/python2.6.

나는 소스에서 Python 2.5를 설치했고 일을 깔끔하게 유지하기 위해 Python을 안팎으로 --prefix=/usr설치하는 옵션을 사용했습니다 ./usr/bin/python2.5/usr/lib/python2.5

이제 실행하면 python버전 2.5를 사용하고 있다는 메시지가 나타납니다. 그런데 설치하는데 몇 가지 문제가 발생했습니다.

패키지 관리:

easy_install을 사용하면 패키지가 항상 설치됩니다 /usr/lib/python2.6/site-packages/. setuptoolsPython 2.5용 .egg를 다운로드하고 설치하려고 했지만 오류가 발생했습니다.

/usr/lib/python2.5/site-packages does NOT support .pth files

python2.5가 내 PYTHONPATH에 없는 것 같습니다. 기본 설치가 PYTHONPATH에 추가될 것이라고 생각했지만 echo $PYTHONPATH프롬프트에 글을 쓰면 빈 줄만 나타납니다.

답변1

여러 Python 버전을 설치하는 데 권장되는 방법은 소스에서 각 버전을 설치하는 것입니다. 두 버전은 행복하게 공존할 것입니다. 그런 다음 virtualenv와 적절한 해석기를 사용하여 필요한 종속성을 설치할 수 있습니다(pip 또는 easy_install 사용). 소스에서 여러 인터프리터를 더 쉽게 설치하는 방법은 다음을 사용하는 것입니다.

sudo make altinstall

더 일반적인 "sudo make install" 대신. 그러면 실행 파일에 버전 번호가 추가되어(그래서 python-2.5, python-2.6, python-3.2 등이 포함됩니다) Python 시스템 버전과의 충돌을 방지합니다.

답변2

완벽한 앱인 것 같아요가상 환경, 격리된 Python 환경을 만드는 데 매우 널리 사용되는 도구입니다. 다음은 Python 버전을 지정하는 예제 명령입니다.

$ virtualenv --python=/usr/bin/python2.6 myvirtualenv

답변3

를 사용하면 easy_install패키지는 항상 다음 위치에 설치됩니다. /usr/lib/python2.6/site-packages/

이는 distutils가 모든 설치 스크립트에 shebang 라인을 추가하기 때문입니다. 스크립트를 직접 실행하면 easy_install설치된 인터프리터를 사용하여 (shebang 라인에 따라) 실행됩니다. 어느 것이 실행되고 있는지 에 easy_install따라 다릅니다 . Python 2.5 인스턴스에 패키지를 설치하려면 사용할 Python 인터프리터를 실행하고 지정해야 합니다.PATHPYTHONPATHeasy_install

/usr/bin/python2.5/python easy_install ...

엄밀히 말하면 virtualenv다음 컨텍스트에서 생성되어야 하므로 여기서는 도움이 되지 않습니다.~에 따르면Python은 running 을 사용하여 이를 수행합니다 easy_install. 이것이 바로 --python논쟁 virtualenv의 목적입니다. 어떤 이유로 easy_install유사한 매개변수가 제공되지 않으므로 위에 표시된 대로 특정 Python 인터프리터를 사용하여 실행해야 합니다.

답변4

Virtualenv는 여기서 절대적인 신의 선물입니다.

내 설정에서는 VIRTUALENV_USE_DISTRIBUTEsetuptools 대신 최신 Distribute 패키지를 사용하기 위해 환경 변수를 1로 설정했습니다. 다음과 같이 내 시스템에 두 버전의 Python에 대한 가상 환경을 만들었습니다.

$ virtualenv -p python2.6 py2
$ virtualenv -p python3.2 py3

그런 다음 다음에 세 가지 별칭을 만들었습니다 .bashrc.

alias py2='source $HOME/py2/bin/activate'
alias py3='source $HOME/py3/bin/activate'
alias idle='python -m idlelib.idle'

따라서 py2기본 Python 2.6과 py3기본 Python 3.2로 전환할 수 있습니다. 입력은 idle내 가상 환경에 적합한 IDLE 버전을 실행합니다.

이러한 가상 환경 중 하나에 패키지를 설치하려면 일반적으로 단일 pip install명령만 필요합니다.

관련 정보