自分はまだまだエンジニアといえるレベルにありませんが、今後のことも考えて、ある程度統一的なPythonの開発環境を構築しておこうと思いまとめてみました。
・M2 Mac
・macOS Monterey
・shell:zsh
概要
パッケージマネージャである「Homebrew」をインストールし、Homebrew上でPythonのバージョン管理ツールである「pyenv」を導入します。
さらにPythonの標準ライブラリである「venv」を使用し、仮想環境を構築します。
また、開発効率化のためテキストエディターである「VScode」を導入します。
パッケージマネージャ
ソフトウェアの実行ファイルや設定ファイル、ライブラリなどをまとめたものを「パッケージ」と言います。
「パッケージマネージャ」は、パッケージのインストールやアンインストール等を一元管理することで、バージョンアップ時等のライブラリの依存関係を整理してくれるシステムを言います。
例えば、ソフトウェアをバージョンアップした際、前バージョンのいらないファイルを自動で削除してくれるといった利点があります。
パッケージマネージャには様々な種類がありますが、「Homebrew」はmacOS用のパッケージマネージャの一つです。
Homebrewのインストール
Homebrewのホームページにアクセスし、「Install Homebrew」の下にあるコマンドをコピーしてください(コマンドの右にある四角枠にチェックを入れることでもコピーできます)。コピーしたコマンドをターミナルに貼り付けてインストールします。
% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
==> Checking for `sudo` access (which may request your password)...
Password: 『Macのパスワードを入力』
==> This script will install:
...(省略)...
Press RETURN/ENTER to continue or any other key to abort: 『RETURNキーを押す。』
...(省略)...
==> Next steps:
- Run these two commands in your terminal to add Homebrew to your PATH:
(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/<user_name>/.zprofile ...『①』
eval "$(/opt/homebrew/bin/brew shellenv)" ...『②』
- Run brew help to get started
- Further documentation:
https://docs.brew.sh
PATHを通すため、指定されたコマンド(上の①と②)を入力します。
% (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/<user_name>/.zprofile
% eval "$(/opt/homebrew/bin/brew shellenv)"
インストールできているか確認するため、バージョンを表示させます。以下のような表示がされていれば成功です。(数字が以下の表示と異なっていても問題ありません。)
# Homebrewのバージョンを表示。
% brew -v
Homebrew 4.1.11
Homebrewの主要コマンド
Homebrewの主要コマンドを以下にまとめます。
# Homebrew自体のみ更新。
% brew update
# Homebrew自体とインストールされているパッケージを更新。
# パッケージ名を指定することで特定のパッケージのみ更新することも可能。
% brew upgrade
# パッケージをインストール。
% brew install <package_name>
# パッケージをアンインストール。
% brew uninstall <package_name>
# Homebrewにインストールしてあるパッケージの一覧を表示。
% brew list
pyenvのインストール
「pyenv」を使用すると、複数のバージョンのPythonを1台のPC内で管理することができます。
Homebrewのホームページの「Search」に「pyenv」と入力することで、インストール方法等を確認することもできます。pyenvをインストールするには、以下のコマンドをターミナルに入力します。
# Homebrew上でpyenvをインストール。
% brew install pyenv
PATHを通すため、以下のコマンドを入力します。
% 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
最後に以下のコマンドでシェルを再起動して完了です。
# シェルを再起動。
% exec "$SHELL"
Pythonのインストール
ここで現在のmacOSにデフォルトでインストールされているPythonのバージョンを確認してみます。
# インストールされているPythonのバージョンを表示。
% python3 --version
Python 3.9.6
私の場合は、バージョン3.9.6でした。
次にpyenvで利用可能なPythonのバージョンを確認してみます。
# pyenvでインストール可能なバージョンを表示。
% pyenv install -l
Available versions:
2.1.3
2.2.3
...(省略)...
特定のバージョンをpyenv上でインストールし、pyenv上のバージョン一覧を表示してみます。
# pyenvでPythonのバージョン3.10.7をインストール。
% pyenv install 3.10.7
# インストール済みのバージョン一覧を表示。
# systemはOSが実装しているバージョン。私の場合は、3.9.6。
# 「*」がついているのが現在有効なバージョン。
% pyenv versions
* system (set by /Users/<user_name>/.pyenv/version)
3.10.7
現在有効のバージョンを3.10.7に変更します。
# 有効のバージョンを3.10.7に変更。
% pyenv global 3.10.7
# インストール済みのバージョン一覧を表示。
% pyenv versions
system
* 3.10.7 (set by /Users/<user_name>/.pyenv/version)
pyenvの主要コマンド
pyenvの主要コマンドを以下にまとめます。
# 利用可能なバージョン一覧を表示。
% pyenv install -l
# 特定のバージョンをインストール。
% pyenv install <version>
# 特定のバージョンをアンインストール。
% pyenv uninstall <version>
# 現在のアカウント全体で有効なバージョンを指定。
% pyenv global <version>
# カレントディレクトリで有効なバージョンを指定。
% pyenv local <version>
# カレントディレクトリのバージョン指定を削除。
% pyenv local --unset
# インストール済みのバージョン一覧を表示。
% pyenv versions
# カレントディレクトリで有効なバージョンを表示。
% pyenv version
venvによる仮想環境の構築
仮想環境という孤立した開発環境を構築することで、異なるバージョンで開発を行う・新しいパッケージやモジュールを試してみるといったことが気軽に行えます。
ここでは、Pythonの標準ライブラリである「venv」を使用し、仮想環境を構築します。
まず、仮想環境を構築するフォルダを作成します。ターミナルでカレントディレクトリを目的のフォルダに移動し、「mkdir」コマンドでフォルダを作成します。mkdirは「make directory」の略です。
# 「mkdir ディレクトリ名」でディレクトリが作成できます。
# 「mkdir -p 親ディレクトリ名/サブディレクトリ名」とすることで、親・サブの両方をいっぺんに作成できます
# 例として、親ディレクトリ「python_project」、サブディレクトリ「sample」を作成します。
% mkdir -p python_project/sample
# カレントディレクトリを「sample」フォルダに移動します。
% cd python_project/sample
「python3」コマンドに続いて「-m」オプションを付すことで、シェルから直接pythonモジュールを実行することができます。
この機能を用いて、「venv」モジュールで仮想環境を構築します。
# 「.venv」という名前で仮想環境を作成します。
# 「.venv」以外の名前でも大丈夫ですが、以降、仮想環境を「.venv」で作成したことを前提に説明します。
% python3 -m venv .venv
# 以下のコマンドで、仮想環境を有効にします。
% . .venv/bin/activate
コマンドプロンプトの先頭に「(.venv)」と表示され、仮想環境で実行中であることが示されます。なお、仮想環境を無効化する場合は、以下のコマンドを実行します。
(.venv)...(省略)...% deactivate
ターミナルを終了すると、ディレクトリはホームディレクトリに戻ってしまい、仮想環境も無効化されてしまいます。毎回、カレントディレクトリの移動と仮想環境の有効化をするのは面倒です。
開発を効率的に進めていくためも、専用のテキストエディターを使用すると良いです。
VSCodeの導入
ここではテキストエディターの一種である「Visual Studio Code(VSCode)」を導入します。
Homebrewのホームページの「Search」に「visual-studio-code」と入力することで、インストール方法等を確認することができます。VSCodeをインストールするには、以下のコマンドをターミナルに入力します。
% brew install --cask visual-studio-code
インストールが完了するとDockにあるLaunchpadに「Visual Studio Code」のアイコンが追加されますので、起動してみます。
拡張機能を使用し、日本語表記にします。左の「Extensions」タブを選択し表示されるExtensions Marketplaceの検索窓に「japanese」と入力します。
「Japanese Language Pack for VS Code」という拡張機能が表示されるので、選択し、「Install」ボタンをクリックします。インストールが完了すると、右下に再起動をすすめるダイアログが表示されるので、「Restart」を選択し、再起動します。これで日本語表示に切り替わります。
同様に、拡張機能「Python」もインストールします。「Python」をインストールすると、「Pylance」等の便利な拡張機能も一緒にインストールされます。
VSCodeで開く
VSCodeで仮想環境を構築したディレクトリ(本ページでは「sample」)を開きます。
ディレクトリ内のスクリプトファイルを選択すると、VSCode下部のステータスバーがPython用に切り替わります。ここに「('.venv': venv)」と表示されていれば、仮想環境下のインタープリターが選択されていることになります。
「('.venv': venv)」が無い場合、インタープリター名をクリックすることで、インタープリターの選択画面が開きますので、「('.venv': venv)」と書かれたインタープリターを選択すれば、ステータスバーの表示が切り替わります。
VSCodeの仕様上、ディレクトリ直下に「.venv」フォルダが存在する場合、仮想環境下のインタープリターを優先して選択するようになっていますので、上述のような仮想環境の有効化コマンドの実行を省略することができます。
※「.venv」フォルダは隠しフォルダですので、通常、表示されていません。隠しファイル・フォルダは、ショートカットキーcommandキー+shiftキー+.キーで表示・非表示を切り替えることができます。