pyenv 는 사용자 홈(~/.pyenv)에 여러 Python 버전을 설치해 두고 셸 · 디렉터리 · 전역 단위로 전환하는 도구다. 시스템 python3 를 건드리지 않고, Python 은 소스에서 빌드하므로 빌드 의존성이 필요하다. 현행 버전은 2.8.6 이다.[1]
Python 빌드 의존성을 먼저 설치한다.[2]
# Ubuntu · Debian
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses-dev \
xz-utils tk-dev libffi-dev liblzma-dev git
# RHEL · Rocky · AlmaLinux
sudo dnf install -y gcc make patch zlib-devel bzip2 bzip2-devel readline-devel sqlite \
sqlite-devel openssl-devel tk-devel libffi-devel xz-devel libuuid-devel gdbm-libs git
현행 버전[1:1]. 공식 설치 스크립트를 쓴다.[3] pyenv-virtualenv 플러그인이 함께 설치된다.
curl -fsSL https://pyenv.run | bash
~/.bashrc 와 ~/.profile (있으면 ~/.bash_profile) 양쪽에 다음을 넣고 셸을 다시 연다.
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init - bash)"
eval "$(pyenv virtualenv-init -)"
exec "$SHELL"
pyenv --version
pyenv install --list | grep " 3\.1[34]"
pyenv install 3.14.7
pyenv versions
폐쇄망이면 소스 tarball 을 ~/.pyenv/cache/ 에 미리 두면 내려받지 않고 빌드한다.
mkdir -p ~/.pyenv/cache
mv Python-3.14.7.tar.xz ~/.pyenv/cache/
pyenv install -v 3.14.7
pyenv global 3.14.7 # 사용자 전역
pyenv local 3.14.7 # 현재 디렉터리 (.python-version)
pyenv shell 3.14.7 # 현재 셸
pyenv virtualenv 3.14.7 myproject
pyenv activate myproject
pyenv deactivate
위 저장소는 오래된 것이라 존재하지 않을 수 있다.
외부망이 막힌 서버에 pyenv-installer 저장소(https://github.com/pyenv/pyenv-installer)의 오프라인 설치 스크립트로 넣은 기록이다.
저장소를 zip 으로 받아 풀고 패키지를 내려받는다.
unzip master.zip
cd pyenv-installer-master
bin/download-pyenv-package.sh
fatal: Unable to look up github.com (port 9418) 이 나면 스크립트에 USE_HTTPS=true 를 추가한다.
vi bin/download-pyenv-package.sh
11 TMP_DIR=$(mktemp -d)
12 USE_HTTPS=true
git 이 없으면 먼저 설치한다.
bin/pyenv-offline-installer
~/.bashrc 환경변수는 위 현행 절차와 같다 (당시 표기는 eval "$(pyenv init --path)" · eval "$(pyenv init -)").
~/.pyenv/cache 의 tarball 을 못 찾으면 ~/.pyenv/plugins/python-build/bin/python-build 의 reuse_existing_tarball() 에서 캐시 경로를 직접 지정했다 (477행 주석, 478행 추가).
476 [ -n "$PYTHON_BUILD_CACHE_PATH" ] || return 1
477 # local cached_package_filename="${PYTHON_BUILD_CACHE_PATH}/$package_filename"
478 local cached_package_filename="/home/manager/.pyenv/cache/Python-2.7.5.tgz"
최신 버전 v2.8.6 — 2026-09-20 확인. https://github.com/pyenv/pyenv/releases ↩︎ ↩︎
Suggested build environment. https://github.com/pyenv/pyenv/wiki#suggested-build-environment ↩︎
pyenv README — Installation. 2026-09-20 확인. https://github.com/pyenv/pyenv#readme ↩︎