真面目に開発環境を用意する場合はdockerを使うべきだけど、
手元でサクッと色々試すための環境も作りたい。
その上でも
・python自体のバージョンを切り替えて使いたい。(主にv3.6を使いたい)
・ライブラリを切り替えて使いたい。
という2つの目的を満たす形で環境を作りたい、という場合の手順メモです。
##今回利用するツールの説明
homebrew
言わずと知れたmacのパッケージマネージャ
(ほぼデファクトスタンダードなものにもかかわらず、個人?が運用しているというのが、自分的には微妙、、なんだけど、他に良いものも見つからないので仕方ない。)
pyenv
python自体のバージョンを切り替えるためのツール
似た名前のものにpyvenvとは別物。pyvenvはdeprecatedで後述のvenvを使うように書かれている。
venv
python自体に組み込まれている仮想環境作成ツール
もともとvirtualenvという独立したツールだったが、python3.3から組み込まれた
#まずはhomebrewを入れる
macにhomebrewがまだ入っていない場合、インストールする
https://brew.sh/index_ja にあるインストール方法でインストールします。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
#pyenvをインストールする
python自体のバージョンを切り替えることができるツールであるpyenvをインストールする
brew install pyenv
インストールしたらパスを設定しておきます
echo 'export PATH="$HOME/.pyenv/shims:$PATH"' >> ~/.bash_profile
export PATH="$HOME/.pyenv/shims:$PATH"
インストール後
pyenv install --list
で利用可能なpythonの一覧が表示されます。
#macとpyenvでのzlibエラー対応
pyenvを利用しようとすると、zlibに関するエラーが発生するのでhttps://qiita.com/zreactor/items/c3fd04417e0d61af0afe
にかかれているように以下のコマンドで対応する
sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
#利用したいpythonバージョンをインストール&切り替える(3.6.8を利用する場合)
pyenv install 3.6.8
pyenv global 3.6.8
#venvでの環境切り替え
python -m venv [環境名]
で[環境名]に以下のようにディレクトリが作成されます
bin/
activate :この環境を利用するためのスクリプト
pip :この環境用のpip
python :pythonの実態へのリンク
include/
lib/ :この環境のpipでインストールしたライブラリはこの下に置かれます。
pyenv.cfg
ライブラリもこの下にインストールされるので、他の環境を汚さずに操作できるようになります。
source [環境名]/bin/activate
でこの環境の利用モードになります。
ここで
python --version
とすると、venvで環境作成したときのバージョンになります。
なお、上記環境利用状態から出る場合は以下のコマンドです。
deactivate
ガッツリ環境を用意する場合はdockerを使いましょう。