Development/Python3..x

[python 3.x] pyenv install

louky 2022. 2. 24. 17:24
반응형

한 시스템에서 여러버전의 python을 사용하고자 할 때 사용하는 하나의 Tool로서 virtualenv보다 편하다고 필자는 생각한다. 

 

설치하는 방법은 아래와 같다. 

 

linux 환경 (Centos, rhel, amazon linux)

사전 설치 

$ yum install -y git bzip2 readline SQLite3 
$ yum install -y @development zlib-devel bzip2 bzip2-devel \
readline-devel sqlite sqlite-devel openssl-devel xz xz-devel \
libffi-devel findutils gcc gcc-c++

사전 설치가 완료 되면 pyenv를 설치 한다. 

설치 방법은 아주 간단하다. 

$ curl -L -s https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
Cloning into '/root/.pyenv'...
remote: Enumerating objects: 882, done.
remote: Counting objects: 100% (882/882), done.
remote: Compressing objects: 100% (439/439), done.
remote: Total 882 (delta 496), reused 566 (delta 337), pack-reused 0
Receiving objects: 100% (882/882), 461.14 KiB | 0 bytes/s, done.
Resolving deltas: 100% (496/496), done.
Cloning into '/root/.pyenv/plugins/pyenv-doctor'...
remote: Enumerating objects: 11, done.
remote: Counting objects: 100% (11/11), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 11 (delta 1), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (11/11), done.
Cloning into '/root/.pyenv/plugins/pyenv-installer'...
remote: Enumerating objects: 16, done.
remote: Counting objects: 100% (16/16), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 16 (delta 1), reused 10 (delta 0), pack-reused 0
Unpacking objects: 100% (16/16), done.
Cloning into '/root/.pyenv/plugins/pyenv-update'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 10 (delta 1), reused 5 (delta 0), pack-reused 0
Unpacking objects: 100% (10/10), done.
Cloning into '/root/.pyenv/plugins/pyenv-virtualenv'...
remote: Enumerating objects: 61, done.
remote: Counting objects: 100% (61/61), done.
remote: Compressing objects: 100% (55/55), done.
remote: Total 61 (delta 11), reused 25 (delta 0), pack-reused 0
Unpacking objects: 100% (61/61), done.
Cloning into '/root/.pyenv/plugins/pyenv-which-ext'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 10 (delta 1), reused 6 (delta 0), pack-reused 0
Unpacking objects: 100% (10/10), done.

WARNING: seems you still have not added 'pyenv' to the load path.


# See the README for instructions on how to set up
# your shell environment for Pyenv.

# Load pyenv-virtualenv automatically by adding
# the following to ~/.bashrc:

eval "$(pyenv virtualenv-init -)"

설치가 완료 되면 아래와 같이 환경변수를 등록하라고 WARNING 메시지가 나온다. 

해당 메시지 처럼 등록을 해도 되나 필자가 해본 결과 오류가 있었고 해당 오류를 수정하여 설정한 방법은 아래과 같다. 

$  vi ~/.bashrc

~(생략)
### pyenv config
# pyenv path를 추가면서 기존 기본path가 꼬이는 것을 방지하기 위해 old_path로 변수로 치환
# 환경에 따라 기본PATH를 다를 수 있다. 
old_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"

export PATH="~/.pyenv/bin:$old_path"
eval "$(pyenv init --path)"
eval "$(pyenv virtualenv-init -)"

2021.06.05 - [Script Language/Python3..x] - [python3.x] pyenv 설정 오류 관련 (WARNING: `pyenv init -` no longer sets PATH.)

 

 

 

환경 변수 설정이 완료 되면 재로그인 하거나  아래와 같이  ~/.bashrc를 재로딩 한다. 

# 꼭 ~/.bashrc가 아니여도 되며 사용자 환경에 맞게 설정하고 로딩하면 된다. 

$ source ~/.bashrc​

 

설치 완료 되면 설치 버전은 확인 한다.

$ source .bashrc
$ pyenv --version
pyenv 2.2.4

아래와 같이 pyenv를 업데이트하고 사용하고자 하는 python을 설치 한다. 

 

$ pyenv update

 

특정 버전의 파이썬 설치 

$ pyenv install 3.7.10

전역 설정 

$ pyenv global 3.7.10

특정 폴더에서만 특정 버전으로 설정

  •  local이라는 옵션을 사용하 경우 해당 경로에  ".python-version" 파일이 생성된다. 
$ pyenv local 3.7.8

 

설치 버전 확인(pyenv로 설치된 모든 버전을 볼수가 있고  "*"되어 있는 버전이 현재 사용하는 버전이다.

$ # pyenv versions
  system
* 3.7.10 (set by /test/.python-version)
  3.7.8
  3.9.2

 

현재 상용중인 파이썬 버전 확인 

## pyenv 명령어를 이용한 방법 
$ pyenv version
3.7.10 (set by /test/.python-version)

## python 명령어를 이용한 방법
$ python
Python 3.7.10 (default, Feb 24 2022, 14:19:51)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

 

여기까지 기본적인 사용방법에 대한 필자의 기록이고 자세한 설정은 help나 pyenv github페이지를 참고 하기 바란다.

 

 

[2024.04.19]

pyenv로 설치 가능한 버전 확인 

pyenv install list

 

반응형