Skip to main content

pyenvとは?

pyenvは、Pythonのバージョン管理ツールの1つであり、pyenvは複数のバージョンのPythonを同時にインストールして切り替えることができるツールです。

インストール方法

Macの場合

Homebrewを使って簡単にインストールできます。

brew install pyenv

Ubuntuの場合

以下の手順でUbuntuへpyenvをインストールします。

  1. 必要な依存パッケージのインストール

    export DEBIAN_FRONTEND=noninteractive 
    apt update
    apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev git
  2. pyenvのインストール(GitHubからクローン)

    git clone https://github.com/pyenv/pyenv.git ~/.pyenv
  3. シェルの設定 プロファイルファイルに以下のコードを追加します。(~/.bashrc, ~/.bash_profile, など、お使いのシェルに応じて適切なファイルを編集してください)

    export PYENV_ROOT="$HOME/.pyenv"
    export PATH="$PYENV_ROOT/bin:$PATH"
    eval "$(pyenv init --path)"
    eval "$(pyenv init -)"

    設定を反映させるために、ターミナルを再起動するか、以下のコマンドを実行します。

    source ~/.bashrc  # または適切なファイルを指定して読み込む

Dockerfile

Dockerで環境を構築する場合は、以下を参考にしてください。

FROM ubuntu:22.04

ENV PYENV_ROOT /.pyenv
ENV PATH $PYENV_ROOT/bin:$PATH

# timezone setting で止まる問題の対策
ENV DEBIAN_FRONTEND=noninteractive

# pyenvに必要なパッケージのインストール
RUN apt update && apt upgrade \
&& apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \
wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev git

# pyenvのインストール
RUN git clone https://github.com/pyenv/pyenv.git $PYENV_ROOT
RUN echo 'eval "$(pyenv init -)"' >> ~/.bashrc && \
eval "$(pyenv init -)"

使い方

pyenvの基本的な使い方は以下の通りです。

  • インストール可能なPythonバージョンの一覧を表示する:

    pyenv install --list
  • 特定のバージョンのPythonをインストールする:

    pyenv install <バージョン>
  • インストール済みのPythonバージョンの一覧を表示する:

    pyenv versions
  • グローバルなPythonバージョンを設定する:

    pyenv global <バージョン>
  • プロジェクトごとにPythonバージョンを設定する:

    pyenv local <バージョン>
  • 現在のシェルセッションでのみPythonバージョンを設定する:

    pyenv shell <バージョン>
  • システムにインストールされたPythonバージョンを無視する:

    pyenv shell <バージョン>
  • 特定のディレクトリにおけるPythonバージョンを優先する:

    pyenv shell <バージョン>
  • 使用可能なPythonバージョンを検索する:

    pyenv which <コマンドまたはバージョン>

これらのコマンドを使って、必要なPythonバージョンを選択し、簡単に切り替えることができます。

参考文献