Python環境のセットアップ(Poetry + pyenv, M2 Mac)

最近 M2 Mac mini を買ったのでセットアップをしている。(元々は Intel チップ搭載のMBA) 今まで通り行かないところがいくつかあったけど、Python周りのセットアップでもつまづいたのでメモを残しておく。(OSの問題かも?)

最近はPython周りの依存関係管理は Poetry がよく使われている印象で、自分も大抵の場合使っている。

普通に公式のinstructionに従ってコマンドを実行すると以下のエラーを出して失敗した。

Exception: This build of python cannot create venvs without using symlinks

調べてみると、類似の質問を見つけた。Homebrew経由でインストールするか、pyenvでpythonをインストールしてからだとうまくいくらしい。

stackoverflow.com

自分はできれば公式のinstructionに従いたいと思ったのでpyenvを使いつつ再度トライすることにした。pyenvはpythonの複数versionを切り替えるのにもよく使われているのでそれも丁度良いと思った。 基本的に、上の質問に対する回答を真似れば解決する。

pyenvはbrew経由でインストールできる。(それが推奨されているようだ

brew install pyenv

shellによってセットアップ方法が違うのでREADMEの手順に沿って行う。

その後適当なversionのpythonをpyenv経由でインストールし、グローバルに設定する。

pyenv install <version>
pyenv global <version>

後はPoetryの推奨インストール方法で無事インストールを完了できた。 もしかしたらもっと適切な方法があるかもしれないのでそこまで調べていないことを最後にまとめておく。

  • システムにはデフォルトでPython3.9がインストールされていた。一方で python ではなく python3 でしか呼び出せないようだったので、python で呼び出せるようにするだけで問題は解決するかもしれない。
  • Poetryではpython versionを切り替える機能が提供されている。(poetry env use)なので敢えてpyenvを使う理由は実はないのかもしれない。