pyenvを用いたPython環境のセットアップ
Posted on March 21, 2022
by nobiruwa
tl;dr
$ git clone https://github.com/pyenv/pyenv.git $HOME/.pyenv
$ PYENV_HOME="$HOME/.pyenv"
$ PYENV_BIN="$PYENV_HOME/bin"
$ PATH="$PYENV_BIN:$PATH"
$ eval "$(pyenv init --path)"
$ eval "$(pyenv init -)"
$ mkdir -p $(pyenv root)/plugins
$ git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
$ cat << EOF >> ~/.profile
PYENV_HOME="$HOME/.pyenv"
PYENV_BIN="$PYENV_HOME/bin"
if [ -d "$PYENV_BIN" ]; then
export PATH="$PYENV_BIN:$PATH"
# rehash after init, because my login shell is dash.
eval "$(pyenv init --path)"
eval "$(pyenv init --no-rehash -)"
(pyenv rehash &) 2> /dev/null
fi
EOF
動機
jEnvを用いたJava環境のセットアップ、nodenvを用いたNode.js環境のセットアップと同じく、プログラミング言語の開発環境をrbenv/rbenvのフォークであるpyenv/pyenvによって構築したいと思いました。
セットアップ
pyenvのチェックアウト
pyenvリポジトリをチェックアウトします。
場所は公式に合わせて~/.pyenvとします。
さらに、pyenv-virtualenvリポジトリをpyenvのプラグインとしてチェックアウトします。
$ git clone https://github.com/pyenv/pyenv.git $HOME/.pyenv
# 一時的に`$HOME/.pyenv/bin`を`$PATH`に追加してpyenv-virtualenvをインストールする
$ PYENV_HOME="$HOME/.pyenv"
$ PYENV_BIN="$PYENV_HOME/bin"
$ PATH="$PYENV_BIN:$PATH"
$ eval "$(pyenv init --path)"
$ eval "$(pyenv init -)"
$ mkdir -p $(pyenv root)/plugins
$ git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
~/.profileの記述
~/.profileにて、環境変数PATHを設定します。
PYENV_HOME="$HOME/.pyenv"
PYENV_BIN="$PYENV_HOME/bin"
if [ -d "$PYENV_BIN" ]; then
export PATH="$PYENV_BIN:$PATH"
# rehash after init, because my login shell is dash.
eval "$(pyenv init --path)"
eval "$(pyenv init --no-rehash -)"
(pyenv rehash &) 2> /dev/null
fiPythonのインストール
pyenv installコマンドで~/.pyenv/versions配下に特定のバージョンのPythonをインストールします。
# インストール可能なバージョンを列挙する
$ pyenv install --list
# 3.10.3をインストールする場合
$ pyenv install 3.10.3
登録されたPythonは下記のコマンドで確認できます。
$ pyenv versions
なお、pip installコマンドは~/.pyenv/versions/<pyenv versionsで列挙されるバージョン文字列>ディレクトリ配下にインストールされます。
これだけではコマンドを使用可能になりませんので、pyenv rehashコマンドを実行してください。
すべてのバージョンのbinディレクトリを更新するので少々時間がかかります。
グローバルのPython環境
グローバルのPython環境を指定します。
$ pyenv global <pyenv versionsで列挙されるバージョン文字列>
ローカルのPython環境
ローカルのPython環境を設定するには、以下のコマンドを実行します。
$ cd <設定したいディレクトリ>
$ pyenv local <pyenv versionsで列挙されるバージョン文字列>
pyenv localを実行したディレクトリには.python-versionファイルが生成されます。
pyenv localを実行したディレクトリとその子孫ディレクトリで実行するpython/pip/virtualenvコマンド等は、.python-versionで指定されたPython環境のものが使用されます。