YouTube

MacでPython環境構築 – pyenv+venv+vscode

M1やBigSurの到来によってハマったからなのか最近はpyenvを使わずにHomebrewにPythonを入れて仮想環境はvenvにしよう!みたいなのが増えている気がする。
しかしbrewでは素のPythonではないのとパッチバージョンが勝手にアップデートされてしまうのはデメリットというか問題だと思う。ここではAnacondaも同様に論外とする。

Pythonのバージョン管理をpyenvで仮想環境はvenvでvscodeからすぐに使える環境を最短で構築する。
記事はたくさんあるのでよくある情報は最小限に留め説明は省く。

やることリスト

  • Xcodeコマンドラインをインストール
  • Homebrewをインストール
  • pyenvをインストール
  • Pythonをインストール
  • venvで仮想環境を作る
  • vscodeをもろもろ

インストールしたらXcodeを開き、Xcode > Preference > Locations と進み一番下のCommand Line Toolsで最新のを選択する。

xcode-select --install

#アンインストールは下記
sudo rm -rf /Library/Developer/CommandLineTools

もしくは、More Downloads for Apple Developers からbetaではない最新をダウンロードしてインストール。

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

#アンインストールは下記
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
brew install pyenv

#パスは下記
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
source ~/.zshrc

pyenv install --list
pyenv install 3.9.4
pyenv global 3.9.4
python -V

公式からダウンロードした場合は、同梱されているlicenseファイルを実行すること。

pyenvやPythonがうまくインストールできない時は下記を参照

備忘録:macOS Big Sur – pyenvでPythonをインストールしようとしてハマった時の対処法

venvで仮想環境を作る

プロジェクトごとに作る必要がある。
予め作業ディレクトリをつくっておくこと。
xxxは適宜変えること。

cd xxx
pyenv versions         #インストールできるPythonの確認
pyenv local 3.x.x      #Pythonバージョンの指定
pyenv version          #念の為ちゃんと
which python           #指定できてるか確認
python -m venv venv    #仮想環境作成

一応グローバルの場合のコマンドも載せておく。

pyenv global 3.x.x
python3.x -m venv venv

これで仮想環境はできたのでsource venv/bin/activatedeactivateで使えるが、vscodeがいい感じでいろいろやってくれるので、次はvscodeでvenvを自動実行できるようにする。

ちなみにPython,vscode,venv,Pylance…これら全部Microsoft製。

vscode

vscode本体とPython用のエクステンションを入れる。
本体はbrewを使わないで直接入れる。

  • Japanese Language Pack for Visual Studio Code
    日本語化
  • Python
    これがなきゃ始まらない
  • Pylance
    設定画面を開いて「python.analysis.typeCheckingMode」から[basic]または[strict]にする
    [basic]は緩い[strict]は厳密
  • Python Indent
    名前通りインデント整形してくれる

先ほどvenvで作ったフォルダをvscodeで開く。
※ドラッグ&ドロップでもいい

vscode - メニュー→ファイル→フォルダーをワークスペースに追加

ワークスペースを直下に保存

vscode - メニュー→ファイル→名前を付けてワークスペースを保存

同じフォルダ内にPythonファイルを用意。特にないならターミナルで下記コマンドを実行。

touch pien.py

先ほどpyenvで指定したPythonのバージョンを選択

vscode - 表示→コマンドパレット→Python:インタープリターを選択

最後にvscodeのエクスプローラから予め用意しておいたpyファイルを選択しvscodeのターミナルを開く

vscode - ターミナル→新しいターミナル
注意

pyファイルが認識されてからターミナルを開かないと仮想環境は実行されない!

vscodeのターミナルで(venv)になってなかったら、一度ターミナルを閉じてvscodeのエクスプローラにあるpyファイルを選択して、ちょっと待ってから新しくターミナルを開けば実行される。

これで今後はワークスペースを開くだけでvscodeがvenvのactivateを実行してくれる!

vscodeが勝手にsettings.jsonを作成してくれてるはずだが念のため確認する。

対象のプロジェクトフォルダ(自分で作った作業ディレクトリ)をFinderで開く。
3つのキー「⌘ + shift + . 」を押すと隠しファイルが見れるようになるので「.vscode」の中のsettings.jsonを開く。
下記があればおk。なければそれぞれ作成すればいい。

settings.json
{
    "python.pythonPath": "which pythonで出てくるパス”,
}

それからpipのバージョンが古いはずなので更新すること

pip -V
pip install --upgrade pip