生物系研究者のpythonとか画像解析とか論文とか

主に生物系研究で使えるpythonとか画像解析とか論文の話とかをザックリ書きます

スポンサードリンク

macでpythonのバージョンを切り替えて使う (pyenv + venv)

macpythonのバージョンを切り替えて使いたい + プロジェクトごとに環境を管理したい

pyenv ・pythonのバージョンを管理できる ・プロジェクトごとにpythonのバージョンを切り替えることができる ・同一バージョンのpythonでプロジェクトごとに環境を切り替えることはできない

venv ・pythonのバージョンは切り替えられない ・プロジェクトごとに環境を切り替えることができる

ということでpyenv+venvでpythonのバージョンとプロジェクトごとの環境を切り替えたい

pyenvのインストール

brew install pyenv

pyenv initをbash_profileに書き込み

echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
source ~/.bash_profile

pyenvでinstall可能なバージョン確認

pyenv install -l

pythonのinstall 最初失敗して下の方に成功したコマンドを書いてあるので注意

pyenv install x.x.x

次のエラーが出た

zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] Error 1

zlibをinstallしようとすると

brew install zlib

以下のように言われた

For compilers to find zlib you may need to set:
  export LDFLAGS="-L/usr/local/opt/zlib/lib"
  export CPPFLAGS="-I/usr/local/opt/zlib/include"

For pkg-config to find zlib you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig"

そこで

export LDFLAGS="-L/usr/local/opt/zlib/lib"
export CPPFLAGS="-I/usr/local/opt/zlib/include"
export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig"

やってみて 再び

pyenv install x.x.x

今度は成功したがWarningが出た

WARNING: The Python sqlite3 extension was not compiled. Missing the SQLite3 lib?
Installed Python-3.7.0 to /Users/{user name}.pyenv/versions/3.7.0

installは成功していると思ったが、この後問題が起こったので一旦削除してやり直し

rm -rf ~/.pyenv/versions/3.7.0

色々調べた結果

CFLAGS="-I$(xcrun --show-sdk-path)/usr/include" pyenv install -v x.y.z

これでよかった

$ pyenv versions
* system (set by /Users/{user name}/.pyenv/version)
  x.x.x

プロジェクトディレクトリに移動して

pyenv local x.x.x

こうすることでプロジェクトディレクトリに来るとversionが切り替わるようになる

次にvenvで環境を構築する こちら mlwbio.hatenablog.com

を参照

スポンサードリンク