新しく購入したまっさらなM2 MacにPython環境を構築した際の手順です.
- PyenvとPoetryのインストール
- PoetryでのPython環境構築
- VSCode連携
仮想環境を使ってシンプルに環境を作ることができます.
Pyenvのインストール
まずはPyenvのインストールを行います.
前提条件
MacのパッケージマネジャーであるHomebrew
を使うため,インストールしていない場合は先にHomebrew
をインストールしましょう.
以下のサイトが大変わかりやすいです.
① Pyenvのインストール
以下のコマンドをターミナルに入力してPyenvをインストールします.
brew install pyenv
② pathの設定
Pyenvにpathを通すため,以下のコマンドを実行します.
なお,最近のMacであればシェルがzsh
なのでzsh
用のコマンドを記載しています.1
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 ~/.zshrc
Pyenvのインストールを確認します.
以下のようにPyenvのバージョンが表示されればOKです.
pyenv --version
pyenv 2.3.2
③ Pythonを任意のバージョンでインストール
続いてPyenvを使用してPythonをインストールしていきます.
今回は例としてPythonのバージョン3.10.5
をインストールします.
インストールするコマンドは以下のとおりです.
pyenv install 3.10.5
参考
インストール可能なPythonのバージョンは以下のコマンドで確認できます.
pyenv install -l
④ 使用するPythonの指定
先ほどインストールしたPythonのバージョンをグローバルで使用するために以下のコマンドを実行します.
pyenv global 3.10.5
Pythonのpathを以下のコマンドで確認します.
pathが.pyenv
以下のPythonになっていればOKです.
which python
/Users/xxx/.pyenv/shims/python
Poetryのインストール
ここからはPoetryをインストールしていきましょう.
① Poetryのインストール
Poetryを以下コマンドでインストール.
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
Poetryのインストールを確認します.
Poetryのバージョンが表示されればOKです.
poetry --version
Poetry version 1.1.14
仮想環境の作成
本記事ではMac全体で動かす2ための仮想環境を作成していきます.
参考
Poetryでは仮想環境のことをプロジェクトと呼んでいますが,本記事では仮想環境で統一しています.
① 仮想環境を作成する場所を決める
場所に決まりはないので,管理しやすい場所に作成します.
本記事ではホームディレクトリに仮想環境用のディレクトリを作成します.
以下のコマンドでホームディレクトリにglobal_env
というディレクトリを作成し,そのディレクトリに移動できます.3
cd && mkdir global_env && cd global_env
コマンドの内容が知りたい方はこちらをクリック
上記のコマンドは以下の一連の操作を行なっています.
cd
コマンドでホームディレクトリに移動mkdir global_env
で「global_env」という名前のディレクトリ作成cd global_env
でglobal_envディレクトリ内に移動
上記で作成したディレクトリの下に仮想環境の実体となるディレクトリ4を配置するため,以下のコマンドで設定を変更します.
poetry config virtualenvs.in-project true
設定の反映を確認します.
出力結果の下から2番目virtualenvs.in-project
がtrue
になっていればOKです.
poetry config --list
cache-dir = "/Users/xxx/Library/Caches/pypoetry"
experimental.new-installer = true
installer.parallel = true
virtualenvs.create = true
virtualenvs.in-project = true
virtualenvs.path = "{cache-dir}/virtualenvs" # /Users/xxx/Library/Caches/pypoetry/virtualenvs
参考
この設定は一度すればOKです.
② 仮想環境の作成
Poetryを使って仮想環境を作成していきましょう.
まずは以下のコマンドでglobal_env_pj
という名前の仮想環境を作る準備を行います.
poetry new global_env_pj
Created package global_env_pj in global_env_pj
上記のコマンドでglobal_env_pj
というディレクトリが作成され,その配下にファイルなどが作成されます.
. └── global_env_pj ├── README.rst ├── global_env_pj ├── pyproject.toml └── tests
cd
コマンドで新しく作成されたglobal_env_pj
ディレクトリに移動しておきます.
cd global_env_pj
続いて,以下のコマンドを実行して仮想環境を使用できるようにします.
poetry install
上記のコマンドで.venv
とpoetry.lock
が追加で作成されます.
これで仮想環境を構築することができました.
. └── global_env_pj ├── .venv ├── README.rst ├── global_env_pj ├── poetry.lock ├── pyproject.toml └── tests
③ 仮想環境内へのライブラリインストール
上記の手順で仮想環境を構築した後は仮想環境内に必要なPythonのライブラリをインストールしていきます.
poetry.lock
やpyproject.toml
がある階層5で以下のようなコマンドを実行します.
poetry add [ライブラリの名称]
Pythonのライブラリであるpandasをインストールする場合は以下のコマンドです. 実行すると関連するライブラリなども合わせてインストールされます.
poetry add pandas
参考
インストールされたライブラリを確認したい場合は以下のコマンドです.
poetry show
仮想環境内におけるPythonの使い方
仮想環境内で構築したPythonを使うには,一時的か持続的かの2パターンがあります.
それぞれ確認していきましょう.
一時的に仮想環境を使ってPythonを動かす
一時的に仮想環境内のPythonを使ってPythonスクリプトを動かす際などに使用します.
poetry.lock
やpyproject.toml
がある階層で以下のようなコマンドを実行します.
poetry run python [pythonスクリプトのpath]
以下はカレントディレクトリにあるhoge.py
を仮装環境内のPythonで動かすコマンドです.
poetry run python hoge.py
単価 数量 総額 いか 100 300 30000 えび 300 50 15000 かに 1000 20 20000
hoge.py
の中身は以下のとおりです.
import pandas as pd
df = pd.DataFrame([[100, 300, 30000], [300, 50, 15000], [1000, 20, 20000]],
index = ['いか', 'えび', 'かに'],
columns = ['単価', '数量', '総額'])
print(df)
注意
上記のコマンドを動かすにはpoetry run python
を実行する仮想環境にpandasがインストールされていることが必要です.
仮想環境内のPythonを使ってスクリプトを動かしたい場合は毎回poetry run python
コマンドを使う必要があります.
仮想環境を持続的に動かしてPythonを実行したい場合は次項を参照してください.
持続的に仮想環境を動かす
仮想環境の持続化ON
仮想環境を持続的に使う6にはpoetry.lock
やpyproject.toml
がある階層で以下のようなコマンドを実行します.
poetry shell
上記のコマンドを実行すると,プロンプトの行頭に(.venv)
という文字が追加されます.
この状態は仮想環境を稼働させた状態であるため,常に仮想環境を使ってスクリプト等を実行できます.
そのため,先ほどはpoetry run python
で仮想環境内のPythonを実行をしましたが,(.venv)
となっていれば以下のコマンドで仮想環境内でのPython実行が可能です.
python hoge.py
なお,ディレクトリを移動してもこの状態は持続し,Python以外のコマンドも通常どおり使うことができます.
仮想環境の持続化OFF
仮想環境の持続化を終了する場合は以下のコマンドです.
コマンドを実行すると行頭についていた(.venv)
がなくなります.
exit
再度仮想環境を持続化させるには
使いたい仮想環境のディレクトリ(poetry.lock
やpyproject.toml
がある階層)に戻ってpoetry shell
を実行しましょう.
VSCodeとの連携
仮想環境を使ってPythonを動かす設定をVSCodeに適用します.
この設定を一度行えば,今後は仮想環境内のPythonをVSCodeで実行することができます.
VSCodeのウィンドウの右下にあるインタープリタ枠をクリック
適当なPythonファイル7をVSCodeで開き,VSCodeのウィンドウの右下にあるインタープリタ枠をクリックします.
画像にある文字と実際の表記が多少異なっていてもOKです.
Pythonを動かす際に使いたい環境のpathを選択
ウィンドウ上部にインタープリタを選択できるポップアップが出てくるので,使いたいPoetry環境をクリック.
選択後,ウィンドウ右下のインタープリタ枠の表示が('.venv': poetry)
のようになっていればOKです.
動作確認
ウィンドウ右上の実行ボタンを押して確認しましょう.
自動でターミナルが起動して仮想環境内でPythonを実行してくれます.
意図した実行結果であればOKです.
Jupyterを使用する場合
PythonをJupyterで動かしたい場合は以下の条件を満たせば可能です.
- VSCodeのJupyter拡張機能をインストール
poetry add jupyter
で仮想環境にJupyterをインストール- Jupyterがインストールされている仮想環境をVScode側で指定
ひとこと
Pythonの環境構築は色々ありますが,仮想環境を使うとクリーンかつシンプルなのでおすすめです.
余談ですが,久しぶりにMacを新調しました.
M2 Macは円安の影響もあって高値ですが,動作がすごく軽快で素晴らしいです.
-
ターミナルで
echo $SHELL
というコマンドを実行するとシェルが確認できます(/bin/zsh
が表示されたらzsh
です). ↩ -
本来は開発/プロジェクト単位で仮想環境を作ったりしますが,今回は私用のMacで動作するようなPython環境を作ります. ↩
-
ディレクトリの名前を変更するには
mkdir global_env
とcd global_env
の「global_env」部分を好きな名称に変更してください.なおmkdir
やcd
の後には半角スペースがあるので,誤って消さないようにご注意ください. ↩ -
仮想環境の実体は
.venv
というディレクトリです.デフォルトでは~/Library/Caches/pypoetry/virtualenvs/
に作成されますが,仮想環境のディレクトリ直下にある方が管理しやすいので設定を変更しています. ↩ -
本ブログの手順に合わせて仮想環境を作成している場合,
pwd
コマンドを実行して表示される階層が/Users/xxx/global_env/global_env_pj
となっている場所です. ↩ -
持続的に使うとは,明示的に止めるまで仮想環境下のPythonを利用することを指しています. ↩
-
拡張子が
.py
のファイルです.なお,可能であればPoetryでインストールしたライブラリを使うようなコードを書いておきましょう(この後の動作確認でエラーなく動くことが確認できればPoetryを使ってPythonを動かしていることがわかるためです) ↩