もくじ

Homebrew + anyenv + pyenv でPythonのバージョンが変更出来ない時の対処方法

ハウツー
コロのicon
コロ

anyenv 経由で pyenv を導入したらpyenv global でバージョンが変わらなくなった

環境

Homebrew
anyenv + pyenv
MacOS 10.15.6

anyenv経由でpyenvをインストール

anyenvをすでにインストール済みの方はスキップしてください。

anyenvをインストール

$ brew install anyenv $ anyenv init # Load anyenv automatically by adding # the following to ~/.zshrc: # ~/.zshrcに下記内容を追記する eval "$(anyenv init -)"

~/.zshrcに追記する

$ echo 'eval "$(anyenv init -)"' >> ~/.zshrc $ source ~/.zshrc # リスタート
~/.zshrcを直接編集してもOK

インストール可能なリストを確認

$ anyenv install -l Renv crenv denv erlenv exenv goenv hsenv jenv jlenv luaenv nodenv phpenv plenv pyenv rbenv sbtenv scalaenv swiftenv tfenv

pyenvインストール

$ anyenv install pyenv
⚠️ ターミナルを再起動する

インストール可能なリストを確認

$ pyenv install -l # インストール可能なバージョンが全て表示される

pyenvで v3.9.0をインストール

anyenv + pyenvでPythonを動かす方はこちらから。
$ pyenv install 3.9.0 $ pyenv versions * system 3.9.0 (set by *****)

グローバルを3.9.0に変更

$ pyenv global 3.9.0
pyenvのバージョンは切り替わった
$ pyenv versions system * 3.9.0 (set by *****) <- 切り替わってる

Pythonのバージョンがデフォルトのまま

$ python --version Python 2.7.10 <- 切り替わってない!

パスが通ってない

anyenvのpythonを読みに行ってない
$ which python /usr/bin/python

WARNING: pyenv init - no longer sets PATH.

ターミナル でもエラーが出ていた

WARNING: `pyenv init -` no longer sets PATH. Run `pyenv init` to see the necessary changes to make to your configuration.
ちなみに、no longer 〜 は、以前は〜だったけど今はもう違う という意味です。
エラーなどでたまに見かけるので覚えておくと役に立つかも。

pyenv init してみる

$ pyenv init # (The below instructions are intended for common # shell setups. See the README for more guidance # if they don't apply and/or don't work for you.) # Add pyenv executable to PATH and # enable shims by adding the following # to ~/.profile and ~/.zprofile: # 下記内容を~/.profile and ~/.zprofile に追加する export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init --path)" # Load pyenv into the shell by adding # the following to ~/.zshrc: # shellでpyenvを読み込むには下記内容を~/.zshrcに追加 eval "$(pyenv init -)" # Make sure to restart your entire logon session # for changes to profile files to take effect. # profile filesの変更を有効にするために、ログインセッションをリスタートさせます

pyenvのパスを通す

使用しているシェルを調べる

$ echo $SHELL # /bin/bash # or # /bin/zsh
書き込むファイルはシェルにあわせてください。
zsh は .zshrc
bash は .bash_profile

.zshrc, .bash_profileに追記する

anyenv経由でpyenvをインストールしているので、pathはanyenvに合わせています。
$ echo 'export PYENV_ROOT="$HOME/.anyenv/envs/pyenv"' >> ~/.zshrc $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc $ echo 'eval "$(pyenv init --path)"' >> ~/.zshrc $ source ~/.zshrc # リスタート
~/.zshrc, ~/.bash_profile を直接編集してもOK

Pythonのバージョンを確認する

$ python -V Python 3.9.0

その他にも出たエラー

ビルドエラー

⚠️
BUILD FAILED

対処法

$ pyenv install 3.9.0 {省略} ..... BUILD FAILED
1.
Homebrewをアップデート
$ brew update // リストの更新 $ brew upgrade // インストールされているFomula全てをアップグレード $ brew cleanup // 古いFomulaを削除
2. pyenvをアップデート
anyenv-update プラグインをインストール
$ mkdir -p $(anyenv root)/plugins $ git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update
$ anyenv update // anyenv経由の *envをすべてアップデート

Python実行エラー

⚠️
No such file or directory
ファイルを実行しようと思った時に出たエラー
$ python ***.py .pyenv/shims/python: line 21: /usr/local/Cellar/pyenv/1.2.8/libexec/pyenv

対処法

pyenvのパスが古いままになっているのでコマンドで更新
$ pyenv rehash // 更新
以上 Homebrew + anyenv + pyenvでPythonを動かすまでに出たエラーの解決方法でした。
コロのicon
コロ
飼い猫と食べ物のことを考えてたら1日が終わってます。Reactでいろいろ作りたい