こんにちは、えびかずきです!
今回はMacユーザー向けに、Python環境を使い分ける方法について説明したいと思います。
Python初学者にとって、Python環境の使い分けは重要です。
開発環境
MacOS Catalina ver.10.15.1
pyenvとvenvについて
pyenvとは
pyenvとはpythonのバージョン管理が出来るコマンドラインツールです。
PCに異なるバージョンのpythonをインストールして自由に切り替えることが可能になります。
(おそらくpython-enviromentの略でpyenvだと思います)
※残念ながらWindowsには対応していないようです。
venvとは
python3.3以降に標準搭載されている仮想環境構築のコマンドラインツールです。
個別のライブラリセットを構築でき、自由に切り替えが可能です。
(おそらくvirtual-enviromentの略でvenvだと思います。)
※python3.3以前のバージョンには搭載されていません。その場合、サードパーティのvirtualenvを使うことが多いようです。
結局のところ、イメージとしては下のようになります。
デフォルトのシステムのままだと環境を個別に分けて使うことが難しいですが、pyenvを使うことでpythonのバージョンを個別に管理することができ、さらにvenvを使うことでライブラリのセットを個別に管理することができます。
pyenvのインストールと使い方
Homebrew(MacOS用パッケージマネージャー)を使って簡単にインストールすることができます。
①ターミナル から下のコマンドでインストールしてください。
brew install pyenv
※Homebrewをインストールしていない方は、事前に下のコマンドでインストールしておいてください。
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
②続いて以下のコマンドを実行して、bash_profileのスクリプトファイルに3,4行目のスクリプトを追加してやります。
$ cat << 'EOS' >> ~/.bash_profile
export PYENV_ROOT=/usr/local/var/pyenv
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
EOS
これはpyenvのインストール時にコマンドラインに表示される「Caveats(注意事項)」で紹介されている内容です。
二行ありますがそれぞれの意味は下の通りです。
一行目:
pyenvのファイルは/usr/local/var/pyenvに保存するようにするということを意味します。デフォルトでは、~/.pyenvへの保存になっています。
二行目:
pyenvの自動補完機能(中身はよくわかりませんが。)を使用するようにするということを意味します。
※まあこれらのbash_profile追記はしなくても問題無くpyenvは動くようにも思いますが一応やっておきます。
ちなみに、
$ cat << '識別子' >> ファイル
文字列1
文字列2
・
・
・
識別子
という構文は、2行目〜識別子(なんでも良いが、この記事ではEnd Of StringsとしてEOSを使用)までの文字列を指定したファイル内に追加する。ということをしています。
具体的にはデータを受け取って出力するcatコマンド(連結を意味するcatenateから)にヒアドキュメントで文字列データを渡して、ファイル内に文字列を追加するということを意味しています。
③次に以下のコマンドで、bash_profileの内容を反映させます。
$ source ~/.bash_profile
④下記コマンドでPythonをインストールし、使用するバージョンとして設定する。
※X.Xの部分にはバージョンを指定。
※インストール出来るバージョンを確認するには$ pyenv install –list を使う。
$ pyenv install 3.X.X
$ pyenv global 3.X.X
※上記コマンドを実行するとpyenvでインストールしたPythonを使用することになりますが、元のシステム内Pythonを使用するように戻すには、以下のコマンドを実行します。
$ pyenv global system
これで、自由にPythonのバージョンを選んで使用できるようになりました。
別バージョンのPythonを使用したくなったら、再度、
$ pyenv install 3.X.X
$ pyenv global 3.X.X
を実行すればOKです。
venvの使い方
venvはpython3.3以降のバージョンであればデフォルトでツールが入っているので、すぐに使うことができます。
①まず下のコマンドを実行することで、仮想環境を作成できます。
※ホームディレクトリ以外の場所に仮想環境ファイルを作成したい場合は、「$ cd」コマンドで保存したいディレクトリへ移動してから書きコマンドを実行してください。
$ python -m venv <仮想環境名>
②次に作成した仮想環境をアクティブ化してやります。
$ source <仮想環境名>/bin/activate
あとは、この状態で、「pip」コマンドなどを使って各種ライブラリをインストールして用途に応じた環境を作り使用します。
アクティブ状態をやめて元のデフォルト状態に戻すには、以下のコマンドを実行します。
(<仮想環境名>) $ deactivate
まとめ
今回はMacユーザー向けに、pyenvとvenvを使ってPython環境を個別に作成する方法について説明しました。
Pythonにて学習や開発を進めていくと、Python自体あるいはライブラリのバージョンにこだわりたくなる時が来ます。
例えば書籍などを参考にデータ分析やAI開発に取り組もうとすると、ライブラリを含めた開発環境を整える必要がありますが、いつも同じ環境で不具合なく動くとは限りません。
この記事を参考に、用途に応じたPython環境を作成してみてはと思います。
[…] pyenvは駆逐すべし、みたいな記事も見かけたり、そもそも何が違うのってところから調べてみたけどhttps://ebi-works.com/pyenv-renv/ の記事が腹落ちしやすかった。 […]
[…] 特定のvenv仮想環境へインストールしたい場合は、cdコマンドで仮想環境のディレクトリへ行き、”source <仮想環境名>/bin/activate”でアクティブ化してからDjangoのインストールをおこなってください。※仮想環境の作り方についてはこちら:pyenvとvenvでPython環境を使い分ける方法【Mac版】 […]