Python の開発環境構築と、fish shell を使用する際にハマリどころがあったのでメモをしておくことにする。
ちなみに今回はfish shellで使うことが主眼なのでWindows環境については考慮しない記事になっている。僕のブログではよくあることなので今更かもしれないが……
pyenv について
Python の Version 管理は(Windows非対応ではあるが) pyenv が一番ラクだし情報も多いと思う。
$HOME/.pyenv
にインストールしたあと、 .bash_profile
とか .zshenv
とかに次のように書くのが通常のインストールである。
export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)
fish shellにおいては、文法が違うので次のように書く。
set -gx PYENV_ROOT "$HOME/.pyenv" set -x PATH $PATH "$PYENV_ROOT/bin" status --is-interactive; and . (pyenv init - | psub)
これで pyenv
コマンドが使えるようになるはずだ。
Anaconda について
pyenv install -l | grep anaconda
などで調べればインストールできるanacondaのversionがわかるはずである。ここでは anaconda3-4.2.0を仮にインストールしたいとしよう。
pyenv install anaconda3-4.2.0 pyenv global anaconda3-4.2.0
Anacondaを使っているので conda create -n py35
などとして py35
という名前の仮想環境を作る。この仮想環境内で作業したいが、fish shellでは残念ながら activate
ができない。
そこで、 $XDG_CONFIG/fish/functions
に (conda info --root)/etc/fish/conf.d/conda.fish
へのシンボリックリンクを置く。
cd $XDG_CONFIG/fish/functions ln -s (conda info --root)/etc/fish/conf.d/conda.fish
すると、 conda activate
や conda deactivate
で仮想環境に出たり入ったりができるようになっているはずだ。