本手順では「Git」を利用します。Gitが未インストールであればインストールして初期設定を完了させておいてください。
まず下記のとおりGitHubから対象資材を~/.pyenv
ディレクトリにcloneします。
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
Cloning into '/root/.pyenv'...
remote: Enumerating objects: 23598, done.
remote: Counting objects: 100% (2109/2109), done.
remote: Compressing objects: 100% (272/272), done.
remote: Total 23598 (delta 1909), reused 1940 (delta 1815), pack-reused 21489
Receiving objects: 100% (23598/23598), 4.71 MiB | 5.90 MiB/s, done.
Resolving deltas: 100% (16023/16023), done.
つづいてpyenvが参照する環境変数を設定します。設定は以下のコマンドを実行します。
Bash
シェルを利用している前提の内容になっています。別のシェルを利用している場合は~/.bashrc
部分をシェルに応じたファイルパスに変更してください。~/.bashrc
を書き換える前にバックアップをしています。cp -p .bashrc .bashrc.org
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrcecho 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrcecho 'eval "$(pyenv init -)"' >> ~/.bashrcsource ~/.bashrccat ~/.bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
export PYENV_ROOT="$HOME/.pyenv"export PATH="$PYENV_ROOT/bin:$PATH"eval "$(pyenv init -)"
以下のコマンドでpyenvが正しく導入されたかを確認します。
pyenv -v
pyenv 2.3.31-1-g63c471d0
以上でpyenvはインストールされましたが、実際にpyenvからPythonをインストールする際、必要なパッケージを予め導入しておく必要があります。
必要なパッケージは以下のページで確認可能です。
AmazonLinuxの場合は以下のパッケージをインストールします。
yum install -y gcc make patch zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl11-devel tk-devel libffi-devel xz-devel
Installed:
bzip2-devel.x86_64 0:1.0.6-13.amzn2.0.3 gcc.x86_64 0:7.3.1-17.amzn2 libffi-devel.x86_64 0:3.0.13-18.amzn2.0.2 openssl11-devel.x86_64 1:1.1.1g-12.amzn2.0.18 patch.x86_64 0:2.7.1-12.amzn2.0.2
readline-devel.x86_64 0:6.2-10.amzn2.0.2 sqlite-devel.x86_64 0:3.7.17-8.amzn2.1.2 tk-devel.x86_64 1:8.5.13-6.amzn2.0.2 xz-devel.x86_64 0:5.2.2-1.amzn2.0.3 zlib-devel.x86_64 0:1.2.7-19.amzn2.0.3
Dependency Installed:
cpp.x86_64 0:7.3.1-17.amzn2 dejavu-fonts-common.noarch 0:2.33-6.amzn2 dejavu-sans-fonts.noarch 0:2.33-6.amzn2 expat-devel.x86_64 0:2.1.0-15.amzn2.0.3
fontconfig.x86_64 0:2.13.0-4.3.amzn2 fontconfig-devel.x86_64 0:2.13.0-4.3.amzn2 fontpackages-filesystem.noarch 0:1.44-8.amzn2 freetype-devel.x86_64 0:2.8-14.amzn2.1.1
glibc-devel.x86_64 0:2.26-63.amzn2.0.1 glibc-headers.x86_64 0:2.26-63.amzn2.0.1 kernel-headers.x86_64 0:4.14.327-246.539.amzn2 keyutils-libs-devel.x86_64 0:1.5.8-3.amzn2.0.2
krb5-devel.x86_64 0:1.15.1-55.amzn2.2.6 libX11.x86_64 0:1.6.7-3.amzn2.0.4 libX11-common.noarch 0:1.6.7-3.amzn2.0.4 libX11-devel.x86_64 0:1.6.7-3.amzn2.0.4
libXau.x86_64 0:1.0.8-2.1.amzn2.0.2 libXau-devel.x86_64 0:1.0.8-2.1.amzn2.0.2 libXft.x86_64 0:2.3.2-2.amzn2.0.2 libXft-devel.x86_64 0:2.3.2-2.amzn2.0.2
libXrender.x86_64 0:0.9.10-1.amzn2.0.2 libXrender-devel.x86_64 0:0.9.10-1.amzn2.0.2 libatomic.x86_64 0:7.3.1-17.amzn2 libcilkrts.x86_64 0:7.3.1-17.amzn2
libcom_err-devel.x86_64 0:1.42.9-19.amzn2.0.1 libitm.x86_64 0:7.3.1-17.amzn2 libkadm5.x86_64 0:1.15.1-55.amzn2.2.6 libmpc.x86_64 0:1.0.1-3.amzn2.0.2
libmpx.x86_64 0:7.3.1-17.amzn2 libpng-devel.x86_64 2:1.5.13-8.amzn2.0.5 libquadmath.x86_64 0:7.3.1-17.amzn2 libsanitizer.x86_64 0:7.3.1-17.amzn2
libselinux-devel.x86_64 0:2.5-12.amzn2.0.2 libsepol-devel.x86_64 0:2.5-10.amzn2.0.1 libuuid-devel.x86_64 0:2.30.2-2.amzn2.0.11 libverto-devel.x86_64 0:0.2.5-4.amzn2.0.2
libxcb.x86_64 0:1.12-1.amzn2.0.2 libxcb-devel.x86_64 0:1.12-1.amzn2.0.2 mpfr.x86_64 0:3.1.1-4.amzn2.0.2 ncurses-c++-libs.x86_64 0:6.0-8.20170212.amzn2.1.5
ncurses-devel.x86_64 0:6.0-8.20170212.amzn2.1.5 openssl11-libs.x86_64 1:1.1.1g-12.amzn2.0.18 openssl11-pkcs11.x86_64 0:0.4.10-6.amzn2.0.1 pcre-devel.x86_64 0:8.32-17.amzn2.0.3
tcl.x86_64 1:8.5.13-8.amzn2.0.2 tcl-devel.x86_64 1:8.5.13-8.amzn2.0.2 tk.x86_64 1:8.5.13-6.amzn2.0.2 xorg-x11-proto-devel.noarch 0:2018.4-1.amzn2.0.2
Dependency Updated:
expat.x86_64 0:2.1.0-15.amzn2.0.3 glibc.x86_64 0:2.26-63.amzn2.0.1 glibc-all-langpacks.x86_64 0:2.26-63.amzn2.0.1 glibc-common.x86_64 0:2.26-63.amzn2.0.1 glibc-locale-source.x86_64 0:2.26-63.amzn2.0.1
glibc-minimal-langpack.x86_64 0:2.26-63.amzn2.0.1 krb5-libs.x86_64 0:1.15.1-55.amzn2.2.6 libcrypt.x86_64 0:2.26-63.amzn2.0.1 libgcc.x86_64 0:7.3.1-17.amzn2 libgomp.x86_64 0:7.3.1-17.amzn2
libpng.x86_64 2:1.5.13-8.amzn2.0.5 libsepol.x86_64 0:2.5-10.amzn2.0.1 ncurses.x86_64 0:6.0-8.20170212.amzn2.1.5 ncurses-base.noarch 0:6.0-8.20170212.amzn2.1.5 ncurses-libs.x86_64 0:6.0-8.20170212.amzn2.1.5
pcre.x86_64 0:8.32-17.amzn2.0.3 zlib.x86_64 0:1.2.7-19.amzn2.0.3
Complete!
以上がpyenvのインストール手順です。
pyenvをアンインストールする場合は、インストール時にGitHubからcloneしてきた資材を削除します。
具体的には以下のコマンドを実行します。
rm -rf $(pyenv root)
またインストール時に~/.bashrc
に追記した部分を削除します。具体的には以下の3行を削除します。
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
以上がpyenvのアンインストール手順です。
pyenvでインストール可能なPythonバージョンを一覧で確認する場合は以下のコマンドを利用します。
pyenv install --list
pyenv install --list
Available versions:
2.1.3
2.2.3
2.3.7
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
(以降省略)
pyenvでインストールしたPythonの一覧で確認する場合は以下のコマンドを利用します。
pyenv versions
pyenv versions
* system (set by /root/.pyenv/version)
3.10.13
3.11.6
上記例ではPython 3.10.13
とPython 3.11.6
がインストールされていることが確認できます。
また現在利用中のバージョンはシステム(pyenv外)にインストールされているバージョンであることが確認できます。
(アスタリスクがついているバージョンが現在利用中のバージョンです)
pyenvでPythonをインストールする場合は以下のコマンドを利用します。
pyenv install [バージョン名]
pyenv install 3.11.6
Downloading Python-3.11.6.tar.xz...
-> https://www.python.org/ftp/python/3.11.6/Python-3.11.6.tar.xz
Installing Python-3.11.6...
Installed Python-3.11.6 to /root/.pyenv/versions/3.11.6
pyenvでPythonをアンインストールする場合は以下のコマンドを利用します。
pyenv uninstall [バージョン名]
pyenv uninstall 3.11.6
[root@hostname ~]# pyenv uninstall 3.11.6
pyenv: remove /root/.pyenv/versions/3.11.6? [y|N] y
pyenv: 3.11.6 uninstalled
pyenvで利用するPythonバージョンを切り替える場合は以下のコマンドを利用します。
pyenv global [バージョン名]
// インストール済バージョン確認
[username@hostname ~]# pyenv versions
system
* 3.10.13 (set by /username/.pyenv/version)
3.11.6
// 利用中バージョン確認(切替前)
[username@hostname ~]# python --version
Python 3.10.13
[username@hostname ~]# pyenv global 3.11.6
// 利用中バージョン確認(切替後)
[username@hostname ~]# python --version
Python 3.11.6
pyenvでカレントディレクトリでのみで利用するPythonバージョンを切り替える場合は以下のコマンドを利用します。
pyenv local [バージョン名]
// インストール済バージョン確認
[username@hostname temp]# pyenv versions
system
* 3.10.13 (set by /username/.pyenv/version)
3.11.6
// 利用中バージョン確認(切替前)
[username@hostname temp]# python --version
Python 3.10.13
// Pythonバージョン切り替え(カレントディレクトリのみ)
[username@hostname temp]# pyenv local 3.11.6
// 利用中バージョン確認(切替後)
[username@hostname temp]# python --version
Python 3.11.6
// 利用中バージョン確認(カレントディレクトリ変更後)
[username@hostname ~]# cd ..; python --version
Python 3.10.13
コメント