![다양한 버전의 Python 사용](https://linux55.com/image/41822/%EB%8B%A4%EC%96%91%ED%95%9C%20%EB%B2%84%EC%A0%84%EC%9D%98%20Python%20%EC%82%AC%EC%9A%A9.png)
배경:
내가 개발하는 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/
. setuptools
Python 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 인터프리터를 실행하고 지정해야 합니다.PATH
PYTHONPATH
easy_install
/usr/bin/python2.5/python easy_install ...
엄밀히 말하면 virtualenv
다음 컨텍스트에서 생성되어야 하므로 여기서는 도움이 되지 않습니다.~에 따르면Python은 running 을 사용하여 이를 수행합니다 easy_install
. 이것이 바로 --python
논쟁 virtualenv
의 목적입니다. 어떤 이유로 easy_install
유사한 매개변수가 제공되지 않으므로 위에 표시된 대로 특정 Python 인터프리터를 사용하여 실행해야 합니다.
답변4
Virtualenv는 여기서 절대적인 신의 선물입니다.
내 설정에서는 VIRTUALENV_USE_DISTRIBUTE
setuptools 대신 최신 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
명령만 필요합니다.