⛰️

install pyenv on 2022-12

2022/12/25に公開

Macを買い替えて、久々にpyenvとvirtualenv入れ直すか〜というところで改めて導入方法を調べながら進めていったのでそのメモ on 2022-12-25

TL;DR

# Xcode Command Line Toolsを入れる
xcode-select --install
# homebrewを入れる
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# pyenvを入れる
brew update
brew install pyenv
## .zshrcに以下を追記
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
## 変更を反映させる
exec "$SHELL"
## 推奨ビルド環境を整える
brew install openssl readline sqlite3 xz zlib tcl-tk
# インストール可能なpythonバージョンを調べる
pyenv install --list
# pythonインストール
pyenv install 3.11.1

# とりあえず適当に最新バージョンが使いたい場合
## グローバルに使用するpythonバージョンの指定
pyenv global 3.11.1

# プロジェクト毎に異なるパッケージを入れて使っていきたい場合
## pyenv-virtualenvインストール
brew install pyenv-virtualenv
### .zshrcに以下を追記
eval "$(pyenv virtualenv-init -)"
### 変更を反映させる
exec "$SHELL"
## 特定のプロジェクト用の環境作成(versionには、pyenvでインストール済みのものを指定する)
pyenv virtualenv 3.11.1 hogeproject
## 環境の適用(プロジェクトルートディレクトリで叩く)
pyenv local hogeproject

流れ

Xcode Command Line Toolsを入れる

Xcode重いんですが、まあMacで開発環境を構築するなら、そして容量に余裕があるなら深く考えず軽率に入れておくと良いと思う

xcode-select --install

Homebrewを入れる

公式記載のコマンドを叩くだけ

https://brew.sh/index_ja

と思ったら、インストール後に「これをzsh的なやつに書いてね!」と言われたので書いた

# Set PATH, MANPATH, etc., for Homebrew.
eval "$(/opt/homebrew/bin/brew shellenv)"

pyenvを入れる

公式READMEに従って進めただけ

  1. https://github.com/pyenv/pyenv#getting-pyenv
    • 項番3のOPTIONALのところは無視しました(brew doctorしてもwarning出なかった
  2. https://github.com/pyenv/pyenv#set-up-your-shell-environment-for-pyenv
  3. https://github.com/pyenv/pyenv/wiki#suggested-build-environment

pythonを入れる

プロジェクトで使いたいバージョンのpythonを入れよう もちろん公式READMEに書いてあるよ

pyenv-virtualenvを入れる

安心の公式README

ここまで進めると、.zshrcはこんな感じになる

# homebrew
## Set PATH, MANPATH, etc., for Homebrew.
eval "$(/opt/homebrew/bin/brew shellenv)"
# pyenv
## https://github.com/pyenv/pyenv#set-up-your-shell-environment-for-pyenv
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
# pyenv-virtualenv
## https://github.com/pyenv/pyenv-virtualenv#installing-with-homebrew-for-macos-users
eval "$(pyenv virtualenv-init -)"

特定のプロジェクト用のpython環境作成

特定のプロジェクト用の環境を作成すると、見た目上2つ生成されるけど、symlinkなので気にしないでねとのこと

% pyenv virtualenv 3.11.1 hogeproject
% pyenv versions
* system (set by /Users/keikuchen/.pyenv/version)
  3.11.1
  3.11.1/envs/hogeproject
  hogeproject

環境の有効化/無効化はpyenv activate/deactivateコマンドがあるけど、これは毎回叩き直す必要があって面倒。pyenv local [環境名]を使って、プロジェクトルートディレクトリに.python-versionファイルを作成する方が便利

pyenv local hogeproject

おわりに

最新の導入方法は変わりゆくものだと思うので、ここに書いてあることは一つの参考程度にして、基本的には公式ドキュメントを都度読むのが確実で良いと思います

なんかPoetryというのもあるらしいですが、pyenvもまだまだ元気そうなので飽きるまではpyenvにしておこうかなという気持ち

https://github.com/python-poetry/poetry

Discussion