【Python】M1/M2 MacでPython環境の構築(pyenvとvenvのインストールと設定、そして使い方)

9 min
更新情報

2022年11月9日:
pyenvvenv、仮想環境の抜け方をサクッとやりたい方向けにまとめを追加しました。

2022年9月14日:
miniforgeインストール直後に必要なconda initconda updatepyenv uninstallの使い方を追加しました。

こんにちは。ナミレリです。みなさん、MacでPythonは使っていますか?
M1やM2などのApple Siliconを搭載したMacでシンプルで使いやすいPython環境の構築方法を紹介します。Python環境の構築はいろいろありますが、私はpyenvvenvでPython環境を構築しています。

この記事はこんな人にオススメ

  • 複数のPythonのバージョンを使いたい
  • ディレクトリごとにPythonのバージョンを切り替えたい
  • MiniforgeなどのPythonディストリビューションを手軽に使いたい

M1、M2のMacをより便利に使うための初期設定についてはぜひ下記の記事を参考にしてください。

【特集】快適なデスクトップ環境を構築する

今回はシンプルにPythonのバージョン管理を行うことができるpyenvと、Pythonに標準で搭載されているvenvで仮想環境を構築します。

この記事でわかること

  • pyenvvenvの関係(シンプルに整理)
  • pyenvによるPythonのバージョン管理
  • venvによる仮想環境の切り替え方

UbuntuへのPyenvのインストールはこちら

この記事のMac環境
  • M2 MacBook Air 13.6 インチ
  • macOS Monterey 12.5
Parallels Desktop 20 for Macの無料トライアル もありますので、ぜひダウンロードして試してみてください。M1/M2/M3のMac上で快適にMacやUbuntu、Windowsが動作します。
NEW Parallels Desktop 20 for Mac

Parallels Desktop 20 for Macは、M1/M2/M3のMac上で快適にMacやUbuntu、Windowsが動作します。

14日間の無料トライアルもありますので、ぜひダウンロードして試してみてください。

そもそもpyenvとvenvってなに?

pyenvとは

pyenvを使うと複数のバージョンのPythonを簡単に切り替えることができます。

venvとは

venv を使うとpipでインストールしたパッケージなどをプロジェクトごとに独立させることができます。

pyenvとvenvの関係(イメージ)

pyenvとvenvの関係(イメージ)

私の場合は、データ分析やAIを勉強するためminiforgeを使って簡単に開発環境を構築すること、それとは別に自動化プログラムなどを書くための環境、pygameで遊んでみる環境、などをpyenvvenvで簡単に環境構築しています。

というわけで、pyenvをインストールし、pyenvvenvの設定や使い方を紹介していきます。

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 -)"

最終行ですが、eval "$(pyenv init -)"でPythonのバージョンが切り替わらない場合は、eval "$(pyenv init --path)"を試してみてください。
pyenv バージョン2.3.9では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 globalminiforgeを指定し、conda init zshで初期化を行います(.zshrccondaの設定が追加されれます)。その後、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をアップデートします。

Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
ResolvePackageNotFound:   – conda=4.10.3


conda update conda


conda update -n base --all

pythonのアップデート(python 3.12.2へアップデート)


conda install python=3.12.2

conda環境を抜ける方法

miniforgeの環境を終了したい場合は、下記のコマンドです。


conda deactivate

condaコマンドをzshで補完する方法を紹介しています。

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をアンインストールする

pyenvminiforgeをインストールしましたが、アンインストールする方法も記載します。アンインストールしたい場合は参考にしてください。


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 localpyenv globalでPythonのバージョンを切り替えることができます。pyenv localで指定しばPythonのバージョンはそのディレクトリに.python-versionが作成されます。

コマンドコマンドの説明
pyenv shell <version> 現在のシェルセッションのみPython環境を切り替える
pyenv local <version>現在のディレクトリ配下でPython環境を切り替える
pyenv global <version>そのユーザの全てのディレクトリでPython環境を切り替える
pyenvで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)

うまく切り替わらない場合は、.zshrceval "$(pyenv init -)"を、eval "$(pyenv init --path)"にして試してみてください。私の環境ではpyenv バージョン2.3.9でeval "$(pyenv init -)"で問題なく切り替わります。

ひとこと

pyenv versionsはインストールしたPythonのバージョンの一覧を表示し、pyenv自体のバージョンを確認する場合はpyenv --versionです。慣れないうちはややこしいですね。

以上がpyenvでのminiforgeのインストールと設定でした。

pyenvのたくさんのコマンドについてはこちらの記事で紹介しています。

続いてvenvの環境構築です。

Mambaについて

condaコマンドと完全互換のある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版

  1. STEP

    まずは仮想環境を入れるディレクトリを作成(test_venvという名前にしています)

    
    mkdir test_venv
    # test_venvというディレクトリを作成(名前を何でもOK)
    
    cd test_venv
    
    
  2. STEP

    仮想環境を作成する

    
    python -m venv .venv
    # .venvという仮想環境を作成
    
    

    仮想環境の名前はvenvや.venvにすることが多いようです。venvにする場合は、

    python -m venv venvとなります。

  3. 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
    
    

    pythonpipのパスを確認すると作成した仮想環境のパスになっていることがわかります。

  4. 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.0venv環境をサクッと作ります。


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

condaコマンドをzshで補完する方法を紹介しています。

最後に

最後まで読んでいただきありがとうございます。今回のMacでPython環境の構築(pyenvvenvのインストールと設定、そして使い方)はいかがでしたでしょうか。M1やM2などのApple Siliconを搭載したMacでシンプルで使いやすいPython環境の構築を紹介しました。みなさんのMacライフに少しでもお役に立てたら幸いです。

MacやLinux、Pythonなど技術系のkindle本も豊富にあります。詳しくはこちらから。

Amazonの電子書籍読み放題サービス「Kindle Unlimited」でプライム会員を対象に、最初の3か月間を無料体験できるキャンペーンを実施中。マンガ、小説、ビジネス書、雑誌など500万冊から、好きな本を何冊でも読めるキャンペーンです。

初めてkindle unlimited 読み放題をご利用の方は30日間の無料で体験できます。
期間終了後は月額980円で、いつでもキャンセルできます。
200万冊以上が読み放題。お好きな端末で利用可能です。

定番おすすめ記事

M1、M2のMacでPythonの開発環境を構築することや、分野別のライブラリのインストール方法を下記の記事でまとめています。ぜひご覧ください。

カテゴリー:
関連記事