🐍

MacでVSCode+pyenv+venv+pipを使い、Pythonの開発環境を構築する

2023/01/29に公開

複数のプロジェクトでPython開発を行う際、プロジェクト毎にPythonのバージョンや依存パッケージなどを使いわける必要があるかと思います。
本記事ではMacで、pyenvとvenvを用いて作成した仮想環境にpipでパッケージをインストールし、Visual Studio Codeで扱うための設定手順について紹介します。

Windowsで同じことをやりたい場合はこちら
https://zenn.dev/sion_pn/articles/4418eeda7c62d0

環境構築

Homebrewをインストール

まずは、関連するパッケージをインストールする環境を整えるため、Homebrewをインストールします。

https://brew.sh/ja/

上記ページに記載がある、インストール用のコマンドを実行します。

zsh
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

実行の過程でパスワードなどの入力を求められますが、画面の指示に従って都度入力します。
一通りインストールが終わると、以下のような形でパスを通すためのコマンドが数行ほど表示されます。

出力結果
==> Next steps:

echoevalなどのコマンドが表示されていると思いますので、これらのコマンドを忘れずに実行しましょう。

xzをインストール

出力結果
ModuleNotFoundError: No module named '_lzma'
WARNING: The Python lzma extension was not compiled. Missing the lzma lib?

pyenvでpython 3.11あたりをインストールすると、上記のようなエラーが発生するので、あらかじめHomebrewからxzをインストールしておきます。

zsh
brew install xz

pyenvをインストール

Pythonのバージョン管理ツールであるpyenvを、Homebrewを使ってインストールします。

zsh
brew install pyenv

インストールができたら、pyenvのパスを通します。
https://github.com/pyenv/pyenv#set-up-your-shell-environment-for-pyenv

zshの場合は以下のコマンドを使用します。それ以外のシェルを使用している場合は、上記リンクから各環境に合わせたコマンドを実行します。

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

パスを通し終えたら、sourceコマンドで変更を反映します。

zsh
source ~/.zshrc 

pyenvでpythonをバージョン指定してインストール

pyenvで提供されているバージョンの一覧を取得します。

zsh
pyenv install --list

上記コマンドで示されたリストから、バージョンを指定してインストールします。

zsh
pyenv install 3.9.16
pyenv install 3.11.1

また、インストールされているバージョンを削除したい場合はuninstallコマンドが使えます。

zsh
pyenv uninstall 3.11.1

Visual Studio Codeをインストール

Visual Studio Codeをインストールします。
https://code.visualstudio.com/#alt-downloads

M1やM2を搭載したSilicon Macの場合、Apple Silicon版をダウンロードします。

Visual Studio CodeでPython拡張機能をインストール

Visual Studio CodeでPythonの開発を行うには、以下の拡張機能をVisual Studio Codeに導入する必要があります。
https://marketplace.visualstudio.com/items?itemName=ms-python.python
VSCode内の拡張機能検索機能を使うか、上記リンクのInstallボタンからインストールを行います。

仮想環境の作成

作業ディレクトリへ移動

.pyファイルが格納されている作業ディレクトリをシェルで開いて下さい。
Visual Studio Codeで扱う際に、何かしら.pyファイルが存在する必要があるため、新規でプロジェクトを作成する場合は、空のファイルで良いので.pyファイルを作成しておきましょう。

pyenvでPythonのバージョン指定

pyenvでインストール済みのPythonのバージョン一覧を取得します

zsh
pyenv versions

インストール済みのバージョンが確認できたら、その中からpyenvを使って当該プロジェクトで使用するPythonバージョンを指定します。

zsh
pyenv local 3.9.16

すると、.python-versionというファイルが作成され、このディレクトリでpython3コマンドを実行した場合、今回指定したバージョンのPythonでコマンドが実行されます。

venvで仮想環境を作成

念のため--versionで、pyenv localで指定したPythonのバージョンが反映されているか確認しておきます。

zsh
python3 --version

大丈夫そうであれば、venvで仮想環境を作成します。
今回は慣例に従い仮想環境の名前は.venvとしますが、任意の名前で作成することが可能です。

zsh
python3 -m venv .venv

これで、作業ディレクトリの.venvというディレクトリ以下に仮想環境が作成されました。

仮想環境にパッケージをインストール

作成した.venvにpipでパッケージをインストールします。

まずは、venvで作成した仮想環境を起動します。

zsh
source .venv/bin/activate

仮想環境が起動したら、その後実行するpython3コマンドの影響範囲は、仮想環境内のみに限定されます。

仮想環境のpipをアップデートします。

zsh
python3 -m pip install --upgrade pip

次に、パッケージをインストールします。
今回の例では、scikit-learnをインストールしてみます。

zsh
pip install scikit-learn

一通りパッケージのインストールが完了したら、deactivateコマンドで仮想環境を閉じます。

zsh
deactivate

Visual Studio Codeで開く

作業ディレクトリを、Visual Studio Codeへドラッグ&ドロップするなどして開きます。
エクスプローラービューに作業ディレクトリ以下のファイル一覧が表示されるので、適当な.pyファイルをクリックします。

VSCode下部のステータスバーの表示がPython専用のものに置き換わるので、ここに'.venv': venvと書かれたインタープリターが表示されていることを確認します。

もし、先ほどvenvで作成した環境ではないものが表示されている場合、インタープリター名の文字をクリックすると、インタープリターの選択画面が開きます。

ここで'.venv': venvと書かれたインタープリターを選択すれば、ステータスバーの表示が切り替わり、venvで作成した仮想環境でVisual Studio Codeを用いた開発が可能になります。

Discussion