これが完璧な解決策かは、わかりません。もっと良い方法があれば、教えてください。
前提
- 初めてに近い状態で、Python を使う
- Python の様々なモジュールを使う
- Homebrew で Python をインストール
- macOS (Apple Silicon)
背景
OpenAI の API を使って、様々な作業をさせるPythonスクリプトを作ろうと思い、Pythonを学び始めました。
しかし、モジュール(ライブラリ?)のインストールで、躓きまくりました。最終的には、エラーメッセージに案内される方法で解決しました。
Pythonのインストール
homebrew を使います。詳しくは、たくさん記事があるので、それを参考にしてください。複雑なことは何もありません。
brew install python@3.12
モジュールのインストールでエラーが出る
次に、使いたいモジュールをインストールしようとすると、エラーが発生
pip3 install openai
後で分かったことですが、エラーメッセージの理解を間違いました。
If you wish to install a Python library that isn't in Homebrew,
use a virtual environment:python3 -m venv path/to/venv
source path/to/venv/bin/activate
python3 -m pip install xyz
homebrewの中ではないPythonライブラリを使いたいなら、以下のコマンドを実行せよとのこと。私は、続くしたのメッセージにしたがってしまって、ハマってしまいました。
If you wish to install a Python application that isn't in Homebrew,
it may be easiest to use 'pipx install xyz', which will manage a
virtual environment for you. You can install pipx withbrew install pipx
Homebrewの中ではない Pythonアプリケーション を使いたいなら、 pipx だと。アプリには、pipxということらしい。
では、homebrew の中の Python Library が使いたい場合はどうしたらいいの?という疑問が湧きますが、その時は別の方法?と思いきや、その方法はなさそうでした(私調べ)。
解決方法
少し面倒ですが、Pythonライブラリのインストールや、コードを勉強したり、実行するときは「仮想環境」を立ち上げて行うようにすることです。上記のメッセージ通りにやるだけです。
まず、仮想環境を起動するためのファイル群を生成します。このファイル群は、どこにおいてもOKなので、ホーム直下に置くことにしました。名前も、 mypy
です。適当です。
python3 -m venv ~/mypy
Pythonでライブラリ(パッケージ)をインストールしたり、コードを書いて、実行するときは、必ず以下のことをします。
source ~/mypy/bin/activate
すると、ターミナルのプロンプト前方に「 (pyvenv) 」とつくようになります。この状態で、pipコマンドなどで、必要なライブラリをインストールします。※ notice が出る場合は、言われた通りにコマンドを実行したら解決します(後述)
pip3 install openai
プログラミングが終わったら、
deactivate
とします。このコマンドは、仮想環境を動かしている時だけ使えます。
おまけ1 : 仮想環境の簡単呼び出し
ちょっとだけ面倒ですよね?そこで、エイリアス(別名コマンド)を追加します。
nano ~/.zshrc
などで、zシェルの設定ファイルを開いて、以下のように記入します。
alias gopy = 'source ~/mypy/bin/activate'
これで次回からは、以下で仮想環境がスタートします。
gopy
おまけ2 : pip のバージョン問題
以下のようなメッセージが出ることがあります。
[notice] A new release of pip is available: 24.0 -> 24.1.2
[notice] To update, run: pip install --upgrade pip
シンプルに
pip install --upgrade pip
とすればOKです。
おまけ3 : Visual Studio Codeの設定
Visual Studio Code内のターミナルをひらけば、すぐに仮想環境で実行できます。