[python] 동일한 컴퓨터에 여러 Python 버전이 있습니까?

Linux에서 동일한 컴퓨터에 여러 버전의 Python을 설치하고 실행하는 방법에 대한 Python 웹 사이트 어딘가에 공식 문서가 있습니까?

수많은 블로그 게시물과 답변을 찾을 수 있지만이를 수행하는 “표준”공식 방법이 있는지 알고 싶습니다.

아니면 이것이 모두 OS에 의존합니까?



답변

완전히 독립적이라고 생각합니다. 설치하기 만하면 다음 /usr/bin/python2.5과 같은 명령이 있습니다 /usr/bin/python2.6. /usr/bin/python기본값으로 사용하려는 항목에 연결 하십시오.

어쨌든 모든 라이브러리는 별도의 폴더 (버전 이름을 따서 명명 됨)에 있습니다.

버전을 수동으로 컴파일하려면 Python 소스 코드의 readme 파일에서 가져온 것입니다.

여러 버전 설치

Unix 및 Mac 시스템에서 동일한 설치 접두사 (구성 스크립트에 대한 –prefix 인수)를 사용하여 여러 버전의 Python을 설치하려는 경우 다른 버전을 설치할 때 기본 Python 실행 파일을 덮어 쓰지 않도록주의해야합니다. “make altinstall”을 사용하여 설치된 모든 파일과 디렉토리에는 주 버전과 부 버전이 포함되어 있으므로 함께 사용할 수 있습니다. “make install”은 $ {prefix} /bin/pythonX.Y를 참조하는 $ {prefix} / bin / python3도 만듭니다. 동일한 접두사를 사용하여 여러 버전을 설치하려는 경우 어떤 버전 (있는 경우)이 “기본”버전인지 결정해야합니다. “make install”을 사용하여 해당 버전을 설치하십시오. “make altinstall”을 사용하여 다른 모든 버전을 설치하십시오.

예를 들어, 2.6이 기본 버전 인 Python 2.5, 2.6 및 3.0을 설치하려면 2.6 빌드 디렉토리에서 “make install”을 실행하고 다른 디렉토리에서 “make altinstall”을 실행합니다.


답변

Windows에서는 “C : \ python26″및 “C : \ python31″이라는 별도의 폴더에 설치되지만 실행 파일은 동일한 “python.exe”이름을 갖습니다.

“python26″및 “python31″에 대한 래퍼 역할을하는 “python.bat”및 “python3.bat”를 포함하는 또 다른 “C : \ python”폴더를 만들고 PATH환경 변수 에 “C : \ python”을 추가했습니다 .

이렇게하면 .bat Python 래퍼 를 입력 python하거나 python3원하는 래퍼를 시작할 수 있습니다.

Linux에서는 #!트릭을 사용하여 스크립트에서 사용할 버전을 지정할 수 있습니다.


답변

업데이트 2019 : 사용 asdf

요즘에는 asdf 를 사용하여 다양한 버전의 Python 인터프리터를 나란히 설치할 것을 제안 합니다.

참고 1 : asdfPython뿐만 아니라 모든 주요 언어에서 작동합니다.

참고 2 : pipenvpoetryasdf 와 같은 인기있는 패키지 관리자와 함께 사용하면 잘 작동합니다 .

당신이있는 경우 asdf을 설치 하면 쉽게 다운로드 / 새로운 파이썬 인터프리터를 설치할 수 있습니다 :

# Install Python plugin for asdf:
asdf plugin-add python

# List all available Python interpreters:
asdf list-all python

# Install the Python interpreters that you need:
asdf install python 3.7.4
asdf install python 3.6.9
# etc...

# If you want to define the global version:
asdf global python 3.7.4

# If you want to define the local (project) version:
# (this creates a file .tool-versions in the current directory.)
asdf local python 3.7.4

이전 답변 : 소스에서 Python 설치

Ubuntu / Mint 에 여러 버전의 Python (기본 버전 옆에 있음)을 설치해야하는 경우 : (다른 Unix에서도 유사하게 작동해야합니다.)

1) 소스 컴파일에 필요한 패키지 설치

$ sudo apt-get install build-essential checkinstall
$ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

2) 원하는 Python 버전 다운로드 및 추출

Linux 용 Python 소스 다운로드 tarball로 하고 /usr/src.

다운로드 한 패키지를 제자리에 추출하십시오. ( ‘x’를 다운로드 한 버전으로 대체)

$ sudo tar xzf Python-x.x.x.tgz

3) Python 소스 컴파일 및 설치

$ cd Python-x.x.x
$ sudo ./configure
$ sudo make altinstall

이제 새 Python 저장소가 /usr/local/bin. 새 버전을 테스트 할 수 있습니다.

$ pythonX.X -V
Python x.x.x
$ which pythonX.X
/usr/local/bin/pythonX.X

# Pip is now available for this version as well:
$ pipX.X -V
pip X.X.X from /usr/local/lib/pythonX.X/site-packages (python X.X)


답변

다른 Python 버전을 설치하는 방법은 실제로 OS에 따라 다릅니다.

그러나 Linux를 사용하는 경우 pythonbrew 또는 pythonz 와 같은 도구를 사용하여 다른 버전을 쉽게 관리하고 전환 할 수 있습니다.


답변

나는 Mac을 사용하고 있으며 나를 위해 일한 가장 좋은 방법은 pyenv를 사용하는 것입니다!

아래 명령은 Mac 용이지만 Linux와 매우 유사합니다 (아래 링크 참조).

#Install pyenv
brew update
brew install pyenv

Mac의 기본 버전으로 Python 3.6이 있다고 가정 해 보겠습니다.

python --version

산출:

Python <your current version>

이제 Python 3.7을 설치하고 먼저 모두 나열하십시오.

pyenv install -l

3.7.3을 보자 :

pyenv install 3.7.3

터미널에서 실행해야합니다 (~ / .bashrc 또는 ~ / .zshrc에 추가).

export PATH="/Users/username/.pyenv:$PATH"
eval "$(pyenv init -)"

이제 열린 터미널 / 쉘 에서만 실행 해 보겠습니다 .

pyenv shell 3.7.3

이제 실행

python --version

산출:

Python 3.7.3

그리고 열린 셸 / iTerm에서 설정을 해제 하는 것이 중요하지 않습니다 .

pyenv shell --unset

전역 또는 로컬 로 실행할 수 있습니다.


답변

패키지 관리자-사용자 수준

여러 버전의 Python을 설치하고 관리 할 수있는 패키지 관리자의 경우 다음을 선택하는 것이 좋습니다.

  • pyenv- 파이썬 버전 만 설치하고 관리 할 수 ​​있습니다.
  • asdf- 다양한 언어를 설치하고 관리 할 수 ​​있습니다.

이러한 패키지 관리자의 장점은 소스에서 Python을 설치하는 것보다 여러 버전의 Python을 설정하고 함께 설치하는 것이 더 쉬울 수 있다는 것입니다. 또한 shim을 사용하여 사용 가능한 Python 버전을 쉽게 변경하고 디렉터리별로 Python 버전을 설정하는 명령을 제공합니다.

이 단점은 기본적으로 사용자 수준 (홈 디렉터리 내부)에 설치되고 약간의 사용자 수준 구성이 필요하다는 것 입니다. ~/.profile~/.bashrc또는 유사한 파일 을 편집해야 합니다. 즉, 모든 사용자를 위해 전역 적으로 여러 Python 버전을 설치하는 데 사용하기가 쉽지 않습니다. 이를 위해 OS의 기존 Python 버전과 함께 소스에서 설치할 수 있습니다.


소스에서 설치-시스템 전체

이 방법을 사용하려면 루트 권한이 필요합니다.

추가 고려 사항 및 옵션 은 소스에서 빌드 하기 위한 공식 Python 문서를 참조 하세요.

/usr/local시스템 관리자가 공유 (시스템 전체) 소프트웨어를 설치하기 위해 지정된 위치이므로 하위 디렉토리는 Python 소스를 다운로드하고 설치하기에 좋은 장소입니다. Linux Foundation의 File Hierarchy Standard 섹션 4.9를 참조하십시오 .

빌드 종속성을 설치하십시오. Debian 기반 시스템에서는 다음을 사용합니다.

apt update
apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev libbz2-dev

설치할 Python 버전을 선택하십시오. 목록은 Python 소스 릴리스 페이지를 참조하십시오.

에서 파일을 다운로드하고 압축을 풉니 다. 아래를 python 버전 (예 :)으로 /usr/local/src바꿉니다 .X.X.X3.8.2

cd /usr/local/src
wget https://www.python.org/ftp/python/X.X.X/Python-X.X.X.tgz
tar vzxf Python-X.X.X.tgz

빌드하고 설치하기 전에 CFLAGS필요한 C 컴파일러 플래그를 사용하여 환경 변수를 설정 하십시오 (GNU make문서 참조 ). 일반적으로 일반적인 사용에는 필요하지 않지만 예를 들어이 Python 버전으로 uWSGI 플러그인을 만들려는 -fPIC경우 다음과 같이 플래그를 설정할 수 있습니다 .

export CFLAGS='-fPIC'

작업 디렉토리를 압축이 풀린 Python 소스 디렉토리로 변경하고 빌드를 구성하십시오. 프로필 기반 최적화를 위해 명령 에서 --enable-optimizations옵션 을 사용하고 싶을 것입니다 . 사용하여 적절한 하위 디렉토리 (에 설치 , 등)../configure--prefix=/usr/local/usr/local/bin/usr/local/lib

cd Python-X.X.X
./configure --enable-optimizations --prefix=/usr/local

여러 버전을 설치할 때 파일을 재정의하지 않으 려면로 프로젝트를 빌드 make하고로 설치 make altinstall하십시오. Python 빌드 문서 의이 페이지 에 있는 경고를 참조하십시오 .

make -j 4
make altinstall

그런 다음 pythonX.XpipX.X(즉 python3.8pip3.8)를 사용 하여 새 python 및 pip 버전을 실행할 수 있어야합니다 . 새 설치의 부 버전이 OS 버전과 동일한 경우 (예 : python3.8.4를 설치하고 OS가 python3.8.2를 사용하는 경우) 전체 경로 ( /usr/local/bin/pythonX.X) 를 지정 하거나 이 버전을 사용하려면 별칭입니다.


답변

사용하는 패키지 배포 시스템에 가장 크게 의존합니다. 예를 들어 MacPorts를 사용하면 여러 Python 패키지를 설치하고pyselect 유틸리티를 하여 기본값을 쉽게 전환 할 수 있습니다. 항상 전체 경로를 제공하여 다른 Python 인터프리터를 호출 할 수 있으며, 전체 경로를 제공하여 모든 Python 라이브러리 및 헤더에 대해 링크 할 수 있습니다.

따라서 기본적으로 버전을 설치하는 방법에 관계없이 설치를 별도로 유지하는 한 별도로 실행할 수 있습니다.