pyenv インストール手順

Linuxコマンド(パッケージ管理)
2023-11-15
ヒーローイメージ

目次
  1. pyenvとは
  2. pyenvをインストールする
  3. pyenvをアンインストールする
  4. pyenvで利用可能コマンド
  5. 参考情報

pyenvとは

  • pyenvは、Pythonのバージョン管理ツールです。
  • pyenvを利用するとPythonの利用バージョンを簡単に切り替え実施ディレクトリ毎にPythonの利用バージョンを指定、することができます。

pyenvをインストールする

  • ここではOS別にpyenvのインストール方法について解説します。

動作確認環境

  • Amazon Linux 2
  • GNU bash, version 4.2.46(2)-release (x86_64-koji-linux-gnu)
  • pyenv 2.3.31-1-g63c471d0
  • git version 2.40.1

手順内容

  1. 本手順では「Git」を利用します。Gitが未インストールであればインストールして初期設定を完了させておいてください。

  2. まず下記のとおりGitHubから対象資材を~/.pyenvディレクトリにcloneします。

    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.
    
    
  3. つづいてpyenvが参照する環境変数を設定します。設定は以下のコマンドを実行します。

    Note
    • ここではBashシェルを利用している前提の内容になっています。別のシェルを利用している場合は~/.bashrc部分をシェルに応じたファイルパスに変更してください。
    • ~/.bashrcを書き換える前にバックアップをしています。
    pyenv環境変数設定
    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の中身)
    # .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 -)"
    
  4. 以下のコマンドでpyenvが正しく導入されたかを確認します。

    pyenvバージョン確認
    pyenv -v
    実行結果例
    pyenv 2.3.31-1-g63c471d0
  5. 以上でpyenvはインストールされましたが、実際にpyenvからPythonをインストールする際、必要なパッケージを予め導入しておく必要があります。
    必要なパッケージは以下のページで確認可能です。

    Home · pyenv/pyenv Wiki
    Simple Python version management. Contribute to pyenv/pyenv development by creating an account on GitHub.
    docs.docker.com
    リンクカード
  6. 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!
    
    
  7. 以上がpyenvのインストール手順です。

pyenvをアンインストールする

  • ここではOS別にpyenvのアンインストール方法について解説します。

動作確認環境

  • Amazon Linux 2
  • GNU bash, version 4.2.46(2)-release (x86_64-koji-linux-gnu)
  • pyenv 2.3.31-1-g63c471d0
  • git version 2.40.1

手順内容

  1. pyenvをアンインストールする場合は、インストール時にGitHubからcloneしてきた資材を削除します。
    具体的には以下のコマンドを実行します。

    pyenv資材削除
    rm -rf $(pyenv root)
  2. またインストール時に~/.bashrcに追記した部分を削除します。具体的には以下の3行を削除します。

    .bashrcの削除部分
    export PYENV_ROOT="$HOME/.pyenv"
    export PATH="$PYENV_ROOT/bin:$PATH"
    eval "$(pyenv init -)"
  3. 以上がpyenvのアンインストール手順です。

pyenvで利用可能コマンド

  • ここではpyenvで利用可能なコマンドについて解説します。

Python利用可能バージョン確認

  • 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
    (以降省略)
    
    

Pythonインストール済バージョン確認

  • pyenvでインストールしたPythonの一覧で確認する場合は以下のコマンドを利用します。

    コマンド書式
    pyenv versions
    コマンド実行例
    pyenv versions
    実行結果例
    * system (set by /root/.pyenv/version)
      3.10.13
      3.11.6
    
    
    Note

    上記例ではPython 3.10.13Python 3.11.6がインストールされていることが確認できます。
    また現在利用中のバージョンはシステム(pyenv外)にインストールされているバージョンであることが確認できます。
    (アスタリスクがついているバージョンが現在利用中のバージョンです)

Pythonインストール

  • 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
    
    

Pythonアンインストール

  • 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
    
    

Pythonバージョン切替(グローバル)

  • 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
    
    

Pythonバージョン切替(ローカル)

  • 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
    
    

参考情報

pyenv/pyenv: Simple Python version management
Simple Python version management. Contribute to pyenv/pyenv development by creating an account on GitHub.
github.com
リンクカード

コメント


Palette Codeなるべく丁寧にプログラミング関連技術を解説するサイト