배경 :
python 다른 python 버전에서 실행해야하는 프로그램)을 개발했기 때문에, 내 컴퓨터에 python)의 다른 버전을 설치했습니다. .
저는 FC 13을 사용하고 있으므로 /usr/bin/python2.6
및 /usr/lib/python2.6
에 python 2.6이 미리 설치되어 있습니다.
소스에서 python 2.5를 설치하고 깔끔하게 유지하기 위해 --prefix=/usr
옵션을 사용했습니다.이 옵션은 /usr/bin/python2.5
및 /usr/lib/python2.5
.
이제 python
을 실행하면 버전 2.5를 사용하고 있다는 메시지가 표시됩니다. 그러나 설치에 문제가 있습니다.
패키지 관리 :
Easy_install을 사용하면 패키지는 항상 /usr/lib/python2.6/site-packages/
에 설치됩니다. setuptools
.Egg for python 2.5를 다운로드하고 설치하려고했지만 오류가 발생합니다.
/usr/lib/python2.5/site-packages does NOT support .pth files
Python2.5가 내 PYTHONPATH에없는 것 같습니다. 기본 설치가 PYTHONPATH에 추가 될 것이라고 생각했지만 promt에서 echo $PYTHONPATH
를 쓰면 빈 줄이 나타납니다.
Python 버전을 여러 개 설치하는 데 권장되는 방법은 소스에서 각 버전을 설치하는 것입니다. 함께 사용할 수 있습니다. 그런 다음 적절한 인터프리터와 함께 virtualenv를 사용하여 필요한 종속성을 설치할 수 있습니다 (pip 또는 easy_install 사용). 소스에서 여러 인터프리터를 쉽게 설치하는 방법은 다음을 사용하는 것입니다.
Sudo make altinstall
더 일반적인 "Sudo make install"대신. 이렇게하면 실행 파일에 버전 번호가 추가되므로 (python-2.5, python-2.6, python-3.2 등) Python 시스템 버전과의 충돌을 방지 할 수 있습니다.
이것은 격리 된 Python 환경을 만드는 데 매우 인기있는 도구 인 virtualenv 에 대한 완벽한 응용 프로그램처럼 들립니다. 이것은 Python 버전을 지정하는 샘플 명령입니다.
$ virtualenv --python=/usr/bin/python2.6 myvirtualenv
easy_install
를 사용하면 패키지가 항상/usr/lib/python2.6/site-packages/
에 설치됩니다.
Distutils가 설치되는 모든 스크립트에 Shebang 줄을 추가하기 때문입니다. easy_install
스크립트를 직접 실행하면 설치된 인터프리터로 실행됩니다 (Shebang 라인에 따라). 실행중인 easy_install
은 PATH
이 아닌 PYTHONPATH
에 따라 다릅니다. Python 2.5 인스턴스에 패키지를 설치하려면 사용할 Python 인터프리터를 지정하여 easy_install
를 실행해야합니다.
/usr/bin/python2.5/python easy_install ...
엄밀히 말하면 virtualenv
는 easy_install
. 이것이 virtualenv
의 --python
인수가 사용하는 이유입니다. 어떤 이유로 easy_install
는 유사한 인수를 제공하지 않으므로 위에 표시된대로 특정 Python 인터프리터로 실행해야합니다.
Fedora 13도 사용하고 있는데 PYTHONPATH
이 설정되지 않았습니다.
Python 내에서 sys.path
는 스크립트를 가져 오는 데 사용되는 경로 목록을 제공합니다.
easy_install
이 (가) 대상 디렉토리를 결정하는 방법에 대해서는 잘 모르겠지만 명령 줄 인수가있을 것이라고 확신합니다.
원하는 python)에 대한 전체 경로를 명령 앞에 입력하여 easy_install
를 실행할 python 버전을 지정하십시오.
또한 easy_install
가 설치 한 하나의 python 버전 내 스크립트에 대한 bin의 심볼릭 링크인지 확인하십시오.
Virtualenv는 확실히 여기에서 신의 선물입니다.
내 설정에서 환경 변수 VIRTUALENV_USE_DISTRIBUTE
를 1로 설정하여 setuptools 대신 더 현대적인 Distribute 패키지를 사용합니다. 다음과 같이 내 시스템에서 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
명령 만 있으면됩니다.