pyenv / pyenv-virtualenv

About_work·2022년 12월 28일
0

pyenv란?

  • 다양한 버전의 파이썬을 관리하는 도구
  • windows 에서는 사용할 수 없다. 고 알고있다.

system python

  • os에 설치되어 제공되는 파이썬
  • 모든 사용자가 사용 가능
  • 시스템 파이썬에 패키지를 설치하려면
  • (파이썬 패키지를 전역적으로 설치하려면)
    • sudo pip install

package manager

  • 패키지를 시스템에 설치하는 방법
    • ex) apt, yum, brew, port 등
  • 패키지 매니저는 user space 대신에, glboal system space에 패키지를 설치한다.

pyenv 설치 방법

os에 맞는 종속성 해결

  • 우분투/debian
$ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl
  • MacOS
brew install openssl readline sqlite3 xz zlib

설치

curl https://pyenv.run | bash
  • pyenv-installer을 설치하면, 아래 플러그인도 설치된다.

    • pyenv
    • pyenv-virtualenv
  • ~./bashrc에 아래를 추가하여 자동으로 pyenv를 불러올 수 있게 하자.

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
  • 셀을 다시 로드한다.
$ exec "$SHELL"

pyenv를 이용하여 python 설치하기

# pyenv가 제공하는 모든 파이썬 버전을 보려면
$ pyenv install --list

# 3.6 ~ 3.7 CPython 버전 확인하고 싶으면
$ pyenv install --list | grep ~ 3\.[678]"

# 원하는 버전이 존재하지 않으면,
$ pyenv update
# 혹은
$ pyenv install 3.10.4

설치 위치

  • 설치한 각 버전은 pyenv root directory에 존재한다.
$ ls ~/.pyenv/versions/
> 2.7.14 2.7.16 .3.10.4
  • 삭제를 원하는 버전이 존재하면
pyenv uninstall 2.7.14

설치한 버전 확인

$ pyenv versions
  • 결과 값 중 * 표시가 있으면, 현재 활성 상태인 파이썬 버전을 나타낸다.
  • 또한 pyenv root 디렉터리에 있는 파일에 의해 설정되었음을 알 수 있다.

사용 중인 python interpreter 위치 확인

  • 방법 1
$ which python

> /usr/local/bin/python
  • 방법 2
$ pyenv which python

pyenv로 사용할 파이썬 버전 지정하기

  • global python version을 설정
    • 파이썬 2.7.14를 사용하고 싶으면 아래 명령어를 입력
$ pyenv global 2.7.14
$ python -V
  • application 별 파이썬 version을 설정하려면?
    • 아래 명령어 입력
    • 해당 명령어는 현재 directory에 .python-version 파일을 생성한다.
    • 환경에 pyenv가 활성화되어 있으면, 이 파일이 자동으로 해당 버전을 활성화한다.
$ pyenv local 2.7.15
  • shell 별 파이썬 버전을 설정하려면?

    • $ pyenv shell 3.8-dev
    • 해당 커멘드는 PYENV_VERSION 환경 변수를 설정하여, 지정된 버전을 활성화한다.
    • 해당 명령을 가지고 있는 모든 응용 프로그램이나 전역 설정을 덮어쓴다.
    • 비활성화하려면 --unset 플래그를 사용할 수 있다.
  • system python의 버전으로 돌아가려면

$ pyenv global system
  • (중요) 파이썬 버전의 우선순위
      1. pyenv shell ( $PYENV_VERSION )
      1. pyenv local (.python-version file)
      1. pyenv global (~/.pyenv/version)
      1. System Python

pyenv 명령어들

  • $ --version 을 치면, 명령어 목록을 알 수 있다.

  • activate / commands / completions / deactivate / exec / global / help/ hooks /,,,

  • 각 명령어는 help 플래그를 갖는다. $ pyenv exec --help


가상 환경과 pyenv

  • pyenv-virtualenv 라는 멋진 플러그인!

    • 여러 파이썬 버전과 여러 가상 환경에서 용이하게 작업할 수 있도록 한다.
    • 다양한 파이썬 버전이 필요한 여러 환경 간 전환이 필요할 때 유용하다.
  • 가상 환경 생성 방법

    • $ pyenv virtualenv <python_version> <environment_name>
  • 가상 환경 활성화하기

    • $ pyenv local myproject
    • 이렇게 하면 현재 작업 directory에 .python-version 파일이 생성되고, 사용자 환경에서 bashrc에 eval "$(pyenv virtualenv-init -)" 을 실행했기 때문에, 환경이 자동으로 활성화된다.
    • $ pyenv which pip 명령을 통해 해당 환경에서 제공하는 실행 파일을 확인할 수 있다.
    • 셸에서 실행하도록 eval "(pyenvvirtualenvinit)"을구성하지않은경우(pyenv virtualenv-init -)" 을 구성하지 않은 경우 ``` pyenv activate <environment_name>``` 을 입력하면 된다.
  • 3.8 버전으로 만들어진 가상 환경을 3.10 버전으로 사용하기

    • $ pyenv local project2 3.10.4
  • 가상환경 지우기

    • $ pyenv uninstall 2.7.14/envs/<environment_name>
profile
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.

0개의 댓글