반응형
한 시스템에서 여러버전의 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 -)"
환경 변수 설정이 완료 되면 재로그인 하거나 아래와 같이 ~/.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
반응형
'Development > Python3..x' 카테고리의 다른 글
[python3.x] pyenv error - patch: command not found (0) | 2022.10.12 |
---|---|
[python3.x] intellij IDEA - ESC 키보드 비프음(beep) (0) | 2021.12.27 |
[python3.x] pyenv로 설정한 python버전으로 정상동작되지 않을때 (0) | 2021.12.08 |
[python3] "TypeError: Object of type date is not JSON serializable" Error 발생시 (1) | 2021.12.06 |
[Python3.x] 파일내 함수이름/라인번호/파일 번호 프린트 하기 (1) | 2021.09.30 |