Pyenv - 특정 프로젝트에 여러 개의 Python 버전 설치


Linux 시스템에서 여러 버전의 Python 을 관리하는 것은 쉬운 작업이 아니며, 특히 초보자에게는 쉽지 않습니다. 때로는 동일한 서버에서 다른 Python 버전을 사용하여 여러 프로젝트를 개발하고 실행하려는 경우에도 악화됩니다. 그러나 pyenv 를 사용하는 경우에는 해당되지 않습니다.

Pyenv 는 Linux 시스템에서 여러 Python 버전을 관리하기위한 간단하고 강력하며 교차 플랫폼 도구입니다.

  • Switching the global Python version on a per-user basis.
  • setting the local Python version on per-project basis.
  • Managing of virtual environments created by anaconda or virtualenv.
  • Overriding the Python version with an environment variable.
  • Searching commands from multiple versions of Python and more.

일반적으로 응용 프로그램 내에서 사용할 버전을 명시 적으로 지정하지 않으면 Python 의 단일 기본 버전이 모든 응용 프로그램을 실행하는 데 사용됩니다. 그러나 pyenv 는 여러 버전이 설치되어있을 때 사용하려는 올바른 Python 버전으로 명령을 전달하기 위해 shim (간단한 실행 파일)을 사용하는 간단한 개념을 구현합니다.

심 (shim) PATH 앞에있는 디렉토리에 pyenv 에 의해 삽입됩니다. 따라서 Python 명령을 실행하면 적절한 심 (shim) 이 가로 챈 다음 pyenv 로 전달한 다음 응용 프로그램에서 지정한 Python 버전을 설정하고 전달합니다 정당한 Python 설치 명령. 이것은 pyenv 의 작동 방식에 대한 개요입니다.

이 기사에서는 리눅스에 pyenv 의 최신 버전을 설치하는 방법을 설명합니다. 또한 위에 나열된 처음 세 가지 사용 사례를 보여줍니다.

Linux에 Pyenv를 설치하는 방법

1. 우선 각 Linux 배포판에서 다음 명령을 사용하여 소스에서 다른 Python 버전을 설치하는 데 필요한 모든 패키지를 설치하십시오.

------------ On Debian/Ubuntu/Linux Mint ------------ 
$ sudo apt install curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev

------------ On CentOS/RHEL ------------
# yum -y install epel-release
# yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel

------------ On Fedora 22+ ------------
# yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel

2. 그런 다음 Github 저장소에서 최신 pyenv 소스 트리를 가져 와서 다음을 사용하여 /home/mial/.pyenv 경로에 설치하십시오. 명령.

$ git clone https://github.com/pyenv/pyenv.git $HOME/.pyenv

3. 이제 pyenv 를 설치 한 경로를 가리 키도록 환경 변수 PYENV_ROOT 을 설정하고 내보내기해야합니다. 그런 다음 다른 시스템 명령과 마찬가지로 pyenv 명령 줄 유틸리티를 실행하려면 PATH /bin 을 추가하십시오.

또한 pyenv init 을 쉘에 추가하여 shim 자동 완성 을 활성화해야합니다. 그림과 같이 /home/mial/.bashrc bash 시작 파일에서이 모든 작업을 수행하십시오.

$ vim $HOME/.bashrc 

이 파일의 끝에 다음 행을 복사하여 붙여 넣으십시오.

## pyenv configs
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"

if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

4. 위와 같이 변경 한 후에는 /home/mial/.bashrc 파일을 가져 오거나 표시된대로 쉘을 다시 시작하십시오.

$ source $HOME/.bashrc
OR
$ exec "$SHELL"

Linux에 여러 개의 Python 버전을 설치하는 방법

5. 이제 pyenv 를 사용할 준비가되었습니다. Python 버전을 설치하기 전에이 명령으로 사용 가능한 모든 버전을 볼 수 있습니다.

$ pyenv install -l

6. 이제 pyenv 를 통해 여러 Python 버전을 설치할 수 있습니다.

$ pyenv install 3.6.4
$ pyenv install 3.6.5

7. pyenv 에서 사용할 수있는 모든 Python 버전을 나열하려면 다음 명령을 실행하십시오. 이 버전은 pyenv 자체를 통해 설치된 버전 만 표시합니다.

$ pyenv versions

8. 다음 명령으로 전역 Python 버전을 확인할 수 있습니다.이 때 기본 버전은 pyenv 가 아닌 시스템에서 설정 한 버전이어야합니다.

$ pyenv global

pyenv 명령을 사용하여 글로벌 파이썬 버전을 설정할 수 있습니다.

$ pyenv global 3.6.5
$ pyenv global

9. 이제 프로젝트 당 로컬 Python 버전을 설정할 수 있습니다. 예를 들어 /home/mial/python_projects/test 에 프로젝트가 있고 다음 명령을 사용하여 Python 버전을 설정할 수 있습니다.

$ cd python_projects/test
$ pyenv local 3.6.5
$ pyenv version		#view local python version for a specific project 
OR
$ pyenv versions

10. Pyenv는 Python을위한 virtualenvs conda 환경의 관리를 자동화하는 pyenv-virtualenv 플러그인 을 통해 가상 환경을 관리합니다. Linux 및 다른 유닉스 계열 시스템에서.

다음 명령을 사용하여이 플러그인을 설치하여 시작할 수 있습니다.

$ git clone https://github.com/yyuu/pyenv-virtualenv.git   $HOME/.pyenv/plugins/pyenv-virtualenv
$ source $HOME/.bashrc

11. 다음은 project1 이라는 프로젝트에서 venv_project1 이라는 테스트 가상 환경을 만듭니다.

$ cd python_projects
$ mkdir project1
$ cd project1
$ pyenv virtualenv 3.6.5 venv_project1

12. 이제 모든 파이썬 버전을 나열하면 스크린 샷과 같이 가상 환경과 로컬 파이썬 버전도 나열되어야합니다.

$ pyenv versions

13. 예를 들어 venv_project1 과 같이 virtualenv 를 활성화하려면 다음 명령을 입력하십시오.

$ pyenv activate venv_project1

빨간

pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.

다른 pyenv 구성 을 추가 한 /home/mial/.bashrc 파일에 내보내기 PYENV_VIRTUALENV_DISABLE_PROMPT = 1 행을 추가하고 파일을 가져옵니다. 강조되고있는 행동을 시뮬레이션합니다.

14. 활성화 된 virtualenv를 비활성화하려면이 명령을 실행하십시오.

$ pyenv deactivate

자세한 내용은 다음 명령을 사용하여 모든 pyenv 명령을 나열 할 수 있습니다.

$ pyenv commands

자세한 내용은 pyenv Github 저장소 (https://github.com/pyenv/pyenv)로 이동하십시오.

pyenv 를 사용하면 정말 간단합니다. 이 가이드에서는 Linux 시스템에서 여러 개의 Python 버전을 관리하기위한 몇 가지 사용 사례를 설명하고 설치 방법을 보여 줬습니다. 아래 피드백 양식을 사용하여 질문을하거나이 도구에 대한 의견을 공유하십시오.