2022年11月9日:
pyenv、venv、仮想環境の抜け方をサクッとやりたい方向けにまとめを追加しました。
2022年9月14日:
miniforgeインストール直後に必要なconda initやconda update、pyenv uninstallの使い方を追加しました。
こんにちは。ナミレリです。みなさん、MacでPythonは使っていますか?
M1やM2などのApple Siliconを搭載したMacでシンプルで使いやすいPython環境の構築方法を紹介します。Python環境の構築はいろいろありますが、私はpyenvとvenvでPython環境を構築しています。
この記事はこんな人にオススメ
- 複数のPythonのバージョンを使いたい
- ディレクトリごとにPythonのバージョンを切り替えたい
- MiniforgeなどのPythonディストリビューションを手軽に使いたい
M1、M2のMacをより便利に使うための初期設定についてはぜひ下記の記事を参考にしてください。
【特集】快適なデスクトップ環境を構築する
今回はシンプルにPythonのバージョン管理を行うことができるpyenvと、Pythonに標準で搭載されているvenvで仮想環境を構築します。
この記事でわかること
- pyenvとvenvの関係(シンプルに整理)
- pyenvによるPythonのバージョン管理
- venvによる仮想環境の切り替え方
UbuntuへのPyenvのインストールはこちら
- M2 MacBook Air 13.6 インチ
- macOS Monterey 12.5
目次
そもそもpyenvとvenvってなに?
pyenvとは
pyenvを使うと複数のバージョンのPythonを簡単に切り替えることができます。
venvとは
venv を使うとpipでインストールしたパッケージなどをプロジェクトごとに独立させることができます。
pyenvとvenvの関係(イメージ)
私の場合は、データ分析やAIを勉強するためminiforgeを使って簡単に開発環境を構築すること、それとは別に自動化プログラムなどを書くための環境、pygameで遊んでみる環境、などをpyenvとvenvで簡単に環境構築しています。
というわけで、pyenvをインストールし、pyenvとvenvの設定や使い方を紹介していきます。
pyenvのたくさんのコマンドについてはこちらの記事で紹介しています。
Pythonでプロのコードを書くための考え方やテクニックを学びたい方におすすめ書籍です。
「VTuberサプーが教える! Python 初心者のコード/プロのコード」
pyenvのインストール
それでは、macにpyenvをインストールしていきます。Ubuntuにpyenvをインストールする方法は下の記事に詳しく記載しています。
UbuntuへのPyenvのインストールはこちら
brew updateでローカルのFormulaファイルを最新にし、pyenvをインストールします。
brew update
brew install pyenv
pyenvの設定
Macでzshを使っている場合の.zshrcの設定を紹介します。
pyenvの設定(zsh)
.zshrcに以下を追加します。
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
下記のコマンドで.zshrcを読み込んで反映させます。
source ~/.zshrc
任意のPythonバージョンのインストール
Pythonバージョンをインストールするには、pyenv installを使います。インストール可能なPythonバージョンを確認するにはpyenv install --listです。
pyenvでMiniforgeのインストール
Miniforgeとは「Python + conda + 最小限のパッケージ」からなるディストリビューション。
Python本体はインストールされますが、必要なパッケージはcondaコマンドを使用して個別にインストールします。。MiniforgeはAnacondaやMinicondaよりも小さいパッケージ構成です。MiniforgeはさまざまなCPUアーキテクチャ(x86_64、ppc64le、およびApple M1を含むaarch64)のサポートに重点を置いていますので、Apple Silicon(M1やM2)のMacにはMiniforge一択といってよいと思います。
インストール可能なMiniforgeのバージョンを確認します。
pyenv install --list | grep miniforge
miniforge-pypy3
miniforge3
miniforge3-4.9.2
miniforge3-4.10
miniforge3-4.10.1-1
miniforge3-4.10.1-3
miniforge3-4.10.1-5
miniforge3-4.10.3-10(←これが最新版)
miniforge3-4.10.3-10をインストールします。
pyenv install miniforge3-4.10.3-10
miniforgeの初期設定(conda init)
miniforgeをインストール後、pyenv globalでminiforgeを指定し、conda init zshで初期化を行います(.zshrcにcondaの設定が追加されれます)。その後、source ~/.zshrcで再読み込みするとプロンプトに(base)が表示されます。
pyenv global miniforge3-4.10.3-10
ここでターミナルを再起動します。
exec $SHELL -l
condaの初期化を行い.zshrcを再読み込みします。
conda init zsh
(中略)
modified /home/mac-test/.zshrc
==> For changes to take effect, close and re-open your current shell. <==
source ~/.zshrc
condaのアップデート
condaコマンドで各種ソフトウェアをインストールする際に(例えばtensorflow-deps)下記のようなエラーがでる場合がありますので、conda update condaでcondaをアップデートします。
conda update conda
conda update -n base --all
pythonのアップデート(python 3.12.2へアップデート)
conda install python=3.12.2
conda環境を抜ける方法
miniforgeの環境を終了したい場合は、下記のコマンドです。
conda deactivate
pyenvで最新のPythonのインストール
続いて、インストール可能なPythonのバージョンを確認します。
pyenv install --list | more
3.10.0
3.10-dev
3.10.1
3.10.2
3.10.3
3.10.4
3.10.5
3.10.6(←これが最新版)
3.11.0rc1
3.11-dev
3.12-dev
python3.10.6をインストールします。
pyenv install 3.10.6
アンインストールはpyenv uninstall <バージョン>です。
pyenv uninstall 3.10.6
miniforgeをアンインストールする
conda init --reverse --dry-run
conda init --reverse
CONDA_BASE_ENVIRONMENT=$(conda info --base)
echo ${CONDA_BASE_ENVIRONMENT}
/Users/user/.pyenv/versions/miniforge3-4.10.3-10
rm -rf ${CONDA_BASE_ENVIRONMENT}
rm -f "${HOME}/.condarc"
rm ~/.pyenv/version
vi ~/.zshrc
# .zshrcのcondaの部分を削除します。
# >>> conda initialize >>>
# ↑↓これに囲まれた行を削除します
# <<< conda initialize <<<
pyenvでインストールしたPythonのバージョンの一覧を確認
pyenv versionsでインストールしたPythonのバージョンの一覧を確認できます。 *マークが現在アクティブなPythonのバージョンです。systemは元々システムにインストールされていたPythonのバージョンです。
pyenv versions
system
3.10.6
* miniforge3-4.10.3-10 (set by /Users/mac-test/.pyenv/version)
pyenvでPythonのバージョンを切り替える
pyenv localやpyenv globalでPythonのバージョンを切り替えることができます。pyenv localで指定しばPythonのバージョンはそのディレクトリに.python-versionが作成されます。
コマンド | コマンドの説明 |
---|---|
pyenv shell <version> | 現在のシェルセッションのみPython環境を切り替える |
pyenv local <version> | 現在のディレクトリ配下でPython環境を切り替える |
pyenv global <version> | そのユーザの全てのディレクトリでPython環境を切り替える |
pyenv globalで3.10.6を指定してみます。
pyenv global 3.10.6
pyenv versions
system
* 3.10.6 (set by /Users/test-mac/.pyenv/version)
miniforge3-4.10.3-10
今度はpyenv globalでminiforgeを指定してみましょう。
pyenv global miniforge3-4.10.3-10
pyenv versions
system
3.10.6
* miniforge3-4.10.3-10 (set by /Users/test-mac/.pyenv/version)
pyenv localでvenv_3.10.6というディレクトリ配下はPython3.10.6に切り替わるように設定してみます。
pyenv versions
system
3.10.6
* miniforge3-4.10.3-10 (set by /Users/test-mac/.pyenv/version)
mkdir venv_3.10.6
cd venv_3.10.6
pyenv local 3.10.6
python --version
Python 3.10.6
pyenv versions
system
* 3.10.6
miniforge3-4.10.3-10 (set by /Users/test-mac/.pyenv/version)
cd
python --version
Python 3.9.13
pyenv versions
system
3.10.6
* miniforge3-4.10.3-10 (set by /Users/test-mac/.pyenv/version)
pyenv versionsはインストールしたPythonのバージョンの一覧を表示し、pyenv自体のバージョンを確認する場合はpyenv --versionです。慣れないうちはややこしいですね。
以上がpyenvでのminiforgeのインストールと設定でした。
pyenvのたくさんのコマンドについてはこちらの記事で紹介しています。
続いてvenvの環境構築です。
Mambaについて
mambaは、condaの高速な代替として開発されたパッケージマネージャーです。C++で実装されておりcondaのパッケージリポジトリと完全に互換性があります。
より高速にパッケージ管理を行いたい方、CPUやメモリなどのリソースに制限がある環境で作業している方に特におすすめです。使い方は、普段のcondaコマンドをmambaコマンドに置き換えるだけです。オプションなども一緒です。
mambaのインストール方法
conda install -c conda-forge mamba
venvで仮想環境の構築
次に、venvを使ってPython仮想環境を構築します。venvを使うとpipでインストールしたパッケージなどをプロジェクトごとに独立させることができます。
全体の流れは以下のようになります。
mkdir test_venv #(test_venvというディレクトリを作成)名前を何でもOK
cd test_venv #(test_venvに移動)
python -m venv .venv #(.venvという仮想環境を作成)名前はvenvや.venvが使われることが多いようです
source .venv/bin/activate #(仮想環境の有効化)
deactive #(仮想環境の無効化)
基礎をわかりやすく解説しておりサンプルコードも多くオススメです:Python[完全]入門 Kindle版
- STEP
まずは仮想環境を入れるディレクトリを作成(test_venvという名前にしています)
mkdir test_venv # test_venvというディレクトリを作成(名前を何でもOK) cd test_venv
- STEP
仮想環境を作成する
python -m venv .venv # .venvという仮想環境を作成
仮想環境の名前はvenvや.venvにすることが多いようです。venvにする場合は、
python -m venv venvとなります。
- STEP
仮想環境を有効化にする
source .venv/bin/activate # 仮想環境の有効化
ターミナルのプロンプトに(.venv) が表示され仮想環境が有効化されていることがわかります。
which python /Users/test-mac/venv_test/.venv/bin/python which pip /Users/test-mac/venv_test/.venv/bin/pip
pythonやpipのパスを確認すると作成した仮想環境のパスになっていることがわかります。
- STEP
仮想環境を無効化にする
deactive # 仮想環境の無効化
ターミナルのプロンプトに表示されていた(.venv) が消えて仮想環境が無効化されていることがわかります。
仮想環境を削除したい場合は、STEP2で作成した.venvを削除するだけでOKです。
まとめ
pyenvまとめ
2022年10月24日にpython 3.11.0がリリースされたのでサクッとpyenvで環境を作ります。
pyenv install 3.11.0
mkdir ~/py_3.11.0
cd ~/py_3.11.0
pyenv local 3.11.0
cat .python-version
Python 3.11.0
python --version
Python 3.11.0
venvまとめ
上で作成した~/py_3.11.0にvenv環境をサクッと作ります。
pwd
~/py_3.11.0
mkdir venv_1
cd venv_1
python -m venv .venv
source .venv/bin/activate
抜け方まとめ
venvを抜けるにはdeactivate
deactivate
condaを抜けるにはconda deactivate
conda deactivate
最後に
最後まで読んでいただきありがとうございます。今回のMacでPython環境の構築(pyenvとvenvのインストールと設定、そして使い方)はいかがでしたでしょうか。M1やM2などのApple Siliconを搭載したMacでシンプルで使いやすいPython環境の構築を紹介しました。みなさんのMacライフに少しでもお役に立てたら幸いです。
MacやLinux、Pythonなど技術系のkindle本も豊富にあります。詳しくはこちらから。
Amazonの電子書籍読み放題サービス「Kindle Unlimited」でプライム会員を対象に、最初の3か月間を無料体験できるキャンペーンを実施中。マンガ、小説、ビジネス書、雑誌など500万冊から、好きな本を何冊でも読めるキャンペーンです。
初めてkindle unlimited 読み放題をご利用の方は30日間の無料で体験できます。
期間終了後は月額980円で、いつでもキャンセルできます。
200万冊以上が読み放題。お好きな端末で利用可能です。