横田研で推奨しているPython環境構築

横田研鯖缶です。
横田研の人はTSUBAMEやABCI、富岳、Summitなど、多くのスパコンを使います。
ここではどのスパコンでもだいたい使えるPythonの環境構築の仕方を書いていきます。

思考停止でできるpyenv & Pythonインストール

1. pyenvのインストール

curl https://pyenv.run | bash

( https://github.com/pyenv/pyenv-installer )

これによって以下のリポジトリがインストールされます:

  • https://github.com/pyenv/pyenv.git
  • https://github.com/pyenv/pyenv-doctor.git
  • https://github.com/pyenv/pyenv-installer.git
  • https://github.com/pyenv/pyenv-update.git
  • https://github.com/pyenv/pyenv-virtualenv.git
  • https://github.com/pyenv/pyenv-which-ext.git

2. 環境変数の設定

以下を.zshrcとか.bashrcに追記

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

3. pyenvの環境変数等の反映

今設定したpyenvの環境変数等を以下のどれかの方法で反映させる。

. ~/.zshrc

とか

. ~/.bashrc

とか。

一度exitしてsshし直すとかでもいいです。

4. Pythonのインストール

pyenvコマンドで好きなバージョンのPythonをインストール

pyenv install 3.8.5

どんなバージョンがインストール可能かを見たければ以下のコマンドを実行。

pyenv install --list

5. インストールしたPythonがデフォルトで使われるようにする

pyenv global 3.8.5

原則

  • ホームディレクトリ下など、自分で全てをコントロールできる場所にインストールする
  • システムのPythonは使わない
  • スパコンセンターが用意したPythonは使わない
    • 僕もひなどりクラスタのパッケージ管理をしていますが、大体管理者が入れるパッケージはけしからんので、信じられるのは自分のみという気持ちでPythonに限らず全て自分で入れるのがいいでしょう。

補足

たまに$HOMEは計算ノードから見られないスパコンがあります。
こういう場合はpyenvを計算ノードから見られるストレージに置く必要があります。
たとえばこれを/path/to/workとすれば、

mv $HOME/.pyenv /path/to/work

とし、PYENV_ROOT

export PYENV_ROOT="/path/to/work/.pyenv"

と設定します。

遭遇したことがあるエラー・不具合

Pythonのインストールが刺さる

loadしているmoduleが悪さをしている可能性があります。

module purge

してみましょう。

Written on June 23, 2021