programing

동일한 시스템에 여러 Python 버전이 있습니까?

lastmoon 2023. 7. 21. 21:49
반응형

동일한 시스템에 여러 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/python3도 생성합니다. 이는 ${prefix}/bin/pythonX를 나타냅니다.Y. 동일한 접두사를 사용하여 여러 버전을 설치하려는 경우 "기본" 버전이 어떤 버전인지 결정해야 합니다.make install을 사용하여 해당 버전을 설치합니다."make altinstall"을 사용하여 다른 모든 버전을 설치합니다.

예를 들어 2.6을 기본 버전으로 하는 Python 2.5, 2.6 및 3.0을 설치하려면 2.6 빌드 디렉터리에서 "make install"을 실행하고 다른 디렉터리에서는 "make altinstall"을 실행합니다.

윈도우즈에서는 "C:\python26"과 "C:\python31"이라는 별도의 폴더에 설치되지만 실행 파일의 이름은 "python.exe"입니다.

는 "python.bat"과 "python31의 래퍼 "과 ""이 각각C:\하고 "python26"python31"에 "추가했습니다.PATH환경 변수입니다.

이렇게 하면 입력할 수 있습니다.python또는python3내 .bat 파이썬 래퍼에서 내가 원하는 것을 시작합니다.

리눅스를 할 수 .#!스크립트를 사용할 버전을 지정하는 트릭입니다.

: 사용하기: 사용asdf

요즘 저는 다양한 버전의 파이썬 인터프리터를 옆에 설치하기 위해 sdf를 사용하는 것을 제안합니다.

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

2: 참고 2:asdfpipenv나 시와 같은 인기 있는 패키지 영화들과 잘 결합된 작품들.

sdf를 설치한 경우 새 Python 인터프리터를 쉽게 다운로드/설치할 수 있습니다.

# 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 설치

Unix 시스템에 여러 버전의 Python(기본 버전 옆)을 설치해야 하는 경우:

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

    sudo apt-get install build-essential check install $ sudo apt-gplv2-dev libncursesw5-dev libsslin-dev libsslin-dev libqlite3-dev tk-dev libcm-dev libc6-dev libz2-dev

  2. 원하는 Python 버전 다운로드 및 압축 풀기

리눅스용 파이썬 소스를 tarball로 다운로드하여 다음으로 이동/usr/src.

다운로드한 패키지의 압축을 풉니다.('x'를 다운로드한 버전으로 대체)

$ sudo tar xzf Python-x.x.x.tgz
  1. Python 소스 컴파일 및 설치

    cd Python-x.x.x $ sudo ./구성 $ sudo make alt install

이 새운은 Python Bin제에 ./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)

저는 Mac을 사용하고 있으며, 제게 가장 효과적인 방법은 pyenv를 사용하는 것입니다!

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

#Install pyenv
brew update
brew install pyenv

Mac에서 python 3.7.6을 기본 버전으로 사용한다고 가정해 보겠습니다.

python --version 

출력:

Python 3.7.6

이제 python 3.10 설치

먼저, 이미 있는지 확인하고 실행합니다.

pyenv install --list

위로 스크롤(아코다 바로 위)하여 아코다가 설치되어 있는지/설치되어 있지 않은 경우 다음을 실행합니다.

pyenv install 3.10

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

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"

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

pyenv shell 3.10

지금 실행

python --version

출력:

Python 3.10.9

또한 열린 셸/iTerm에서 설정을 해제하는 것도 중요합니다.

pyenv shell --unset

전체적으로 또는 로컬로도 실행할 수 있습니다.

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

여러 버전의 python을 설치하고 관리할 수 있는 패키지 관리자의 경우 다음과 같은 방법이 좋습니다.

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

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

디렉토리 에구성이 입니다. - 사용자는 사용자 수준 구성을 . 사용자 수준 구성을 편집해야 합니다.~/.profile그리고.~/.bashrc또는 유사한 파일.즉, 모든 사용자를 위해 글로벌하게 여러 파이썬 버전을 설치하는 데 사용하기가 쉽지 않습니다.이를 위해 OS의 기존 파이썬 버전과 함께 소스에서 설치할 수 있습니다.


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

이 메서드에는 루트 권한이 필요합니다.

추가 고려사항 및 옵션은 소스에서 빌드하는 공식 python 설명서를 참조하십시오.

/usr/local는 시스템 관리자가 공유(시스템 전체) 소프트웨어를 설치할 수 있도록 지정된 위치이므로 하위 디렉터리가 python 소스를 다운로드하여 설치하기에 적합합니다.리눅스 Foundation의 파일 계층 표준 섹션 4.9를 참조하십시오.

빌드 종속성을 설치합니다.데비안 기반 시스템에서는 다음을 사용합니다.

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 소스 릴리스 페이지를 참조하십시오.

일드압에서 파일 다운로드 및 /usr/local/src를 대체하기X.X.X 버전 아에파즉버전썬이이다있래습(니, )과 .3.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

빌드 및 설치하기 전에 다음과 같이 설정합니다.CFLAGSC 컴파일러 플래그가 있는 환경 변수가 필요합니다(GNU 설명서 참조).일반적으로 이는 필요하지 않지만, 예를 들어 이 파이썬 버전으로 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

그러면 당신은 당신의 새로운 파이썬과 pip 버전을 실행할 수 있을 것입니다.pythonX.X그리고.pipX.X (계속),python3.8그리고.pip3.8. . 새예: 를 사용한 ) 경로를 /usr/local/bin/pythonX.X또는 이 버전을 사용할 별칭을 설정합니다.

다양한 Python 버전을 설치하는 방법은 OS에 따라 다릅니다.

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

Fedora Linux - 패키지에서 간단히 설치

Fedora distro에는 EOL이 적용되지 않은 이전 버전의 Python이 포함되어 있습니다.저는 그것이 꽤 편리하다고 생각합니다.

예를 들어 최근 Fedora 35(2021년 가을)의 기본 Python은 3.10이지만 3.6, 3.7, 3.8 및 3.9도 설치할 수 있습니다.

패키지는 다음과 같이 설명됩니다.

개발자를 위한 Python 3.X 패키지.

이 패키지는 개발자가 이전 버전의 Python에 대해 코드를 테스트할 수 있도록 하기 위해 존재합니다.이 스택은 전체 Python 스택이 아니며 Python 3.에서 애플리케이션을 실행하려면 이전 Fedora 릴리스와 같이 이를 지원하는 다른 배포판을 참조하십시오.

예를 들어 3.7을 설치된 Python(shell 명령줄, 루트로 또는 를 사용하여)에 추가로 설치하려면 다음을 수행합니다.

dnf install python3.7

.pip(셸 명령줄, 일반 사용자)로 시작해야 합니다.

python3.7 -m ensurepip --user --altinstall
# --altinstall will create pip3.7 but will not overwrite pip3

그러면 일반적으로 계속할 수 있습니다.

pip3.7 install --user pytest ... # or whatever you need

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

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

저는 이것을 아콘다 항해사와 함께 했습니다.나는 아나콘다 네비게이터를 설치하고 다른 파이썬 버전으로 두 개의 다른 개발 환경을 만들었습니다.

환경을 전환하거나 활성화 및 비활성화하여 서로 다른 Python 버전 간에 전환합니다.

먼저 Aconda 네비게이터를 설치한 다음 환경을 만듭니다.

환경을 관리하는 방법에 대한 도움말을 참조

https://docs.anaconda.com/anaconda/navigator/tutorials/manage-environments/

여기 콘다로 하는 영상이 있습니다.

https://youtu.be/EGaw6VXV3GI

파이엔브를 사용하는 것을 제안합니다.동일한 시스템에서 여러 버전의 파이썬을 관리할 수 있는 파이썬 버전 관리자입니다.

시스템 기본값과 함께 추가 버전의 Python을 설치하는 다른 방법을 찾고자 했습니다.특정 프로젝트에 필요한 파이썬의 다른 버전이 하나만 있다면 이는 가볍습니다.그것은 데드스네이크 PPA를 사용하고 있기 때문에 이것은 Ubuntu Linux에만 해당됩니다.

지침들.PPA 추가

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update && sudo apt upgrade

이제 Python 3.5가 필요하다고 가정해 보겠습니다.

sudo apt install python3.5 python3.5-dev python3.5-venv

그러면 다음을 사용할 수 있습니다.python3.5원하는 경우 경로에서 실행 가능합니다.

특정 프로젝트를 위한 벤브를 만들어야 한다면,

cd your-project
python3.5 -m venv .venv
source .venv/bin/activate

참고 - 인기 있는 'pyenv'를 사용해 보았지만, bashrc/profile에서 너무 많은 작업을 수행하고 있으며 셸 프롬프트 속도를 늦추고 있습니다.또한 새로운 Python 버전의 설치는 각 버전을 컴파일할 때 매우 느렸습니다.pyenv는 많은 프로젝트에서 Python 버전 사이를 많이 전환해야 하는 경우에 더 나을 수 있습니다.

언급URL : https://stackoverflow.com/questions/2547554/multiple-python-versions-on-the-same-machine

반응형