0. はじめに
pyenv の環境汚染を解決したい.
1年前ぐらいにやって断念した.
3年ぶりに Catalina 10.15.4 から Ventura 13.4 へ OS アップデートしたのでそのタイミングで pyenv の修復を試みることにした.
シェルを bash から zsh に更新し profile を初期化することで,散々報告されている ERROR: invalid Python executable:
および BUILD FAILED (OS X 13.4 using python-build 20180424)
のエラーを解決した.
旧環境
macOS Catalina 10.15.4
$ bash --version GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin22) Copyright (C) 2007 Free Software Foundation, Inc. $ /usr/local/var/pyenv/versions/3.8.6/bin/python -V Python 3.8.6
新環境
macOS Ventura 13.4
% zsh --version zsh 5.9 (x86_64-apple-darwin22.0) % python -V Python 3.11.4
1. 再チャレンジ
何をやっても pyenv install
が出来ない.
brew upgrade pyenv pyenv rehash xcode-select --install pyenv update pip install --upgrade pip
および
LDFLAGS="-L$(xcrun --show-sdk-path)/usr/lib" pyenv install 3.11.4
→ 解決せず
Error message
$ pyenv install 3.11.4 python-build: use openssl@1.1 from homebrew python-build: use readline from homebrew Downloading Python-3.11.4.tar.xz... -> https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tar.xz Installing Python-3.11.4... python-build: use tcl-tk from homebrew python-build: use readline from homebrew python-build: use zlib from xcode sdk ERROR: invalid Python executable: /Users/(user_name)/$/usr/local/var/pyenv/versions/3.11.4/bin/python3.11 The python-build could not find proper executable of Python after successful build. Please open an issue for future improvements. https://github.com/pyenv/pyenv/issues BUILD FAILED (OS X 13.4 using python-build 20180424) Inspect or clean up the working tree at /var/folders/z2/vjmcg1b17pzdf5rk5k7831fm0000gn/T/python-build.20230703202908.2443 Results logged to /var/folders/z2/vjmcg1b17pzdf5rk5k7831fm0000gn/T/python-build.20230703202908.2443.log Last 10 log lines: case upgrade in \ upgrade) ensurepip="--upgrade" ;; \ install|*) ensurepip="" ;; \ esac; \ DYLD_LIBRARY_PATH=/var/folders/z2/vjmcg1b17pzdf5rk5k7831fm0000gn/T/python-build.20230703202908.2443/Python-3.11.4 ./python.exe -E -m ensurepip \ $ensurepip --root=/ ; \ fi Looking in links: /var/folders/z2/vjmcg1b17pzdf5rk5k7831fm0000gn/T/tmp8mgw0x69
2. zsh
bash から zsh に移行した.先送りにしていたが,これを機にシェルを更新すれば pyenv についてなんとかなるのではないかと思った.
chsh -s /bin/zsh
https://swift-ios.keicode.com/mac/bash-to-zsh.php
→ pyenv install 3.11.4
が通ってしまった.というわけで,解決した.
python-build: use openssl@1.1 from homebrew python-build: use readline from homebrew Downloading Python-3.11.4.tar.xz... -> https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tar.xz Installing Python-3.11.4... python-build: use tcl-tk from homebrew python-build: use readline from homebrew python-build: use zlib from xcode sdk Installed Python-3.11.4 to /Users/user_name/.pyenv/versions/3.11.4
参考
https://qiita.com/shionit/items/31bfffa5057e66e46450
https://blog-and-destroy.com/34392
https://qiita.com/yamagen0915/items/77fb78d9c73369c784da
pyenv のエラーは .bash_profile
が原因だったようだ.長いので載せない.
export PS1="%K{green}%m: %~ %D %* %%%K{} "
でプロンプトをカスタマイズした.
3. Path
無事 pyenv が復旧(シェルの初期化)できたので path を通す.公式:
https://github.com/pyenv/pyenv#set-up-your-shell-environment-for-pyenv
Part of the history:
27 python 31 pyenv global 3.11.4 32 pyenv versions 34 echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc\necho 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc\necho 'eval "$(pyenv init -)"' >> ~/.zshrc 35 exec "$SHELL" 36 python 37 which python 38 whereis python 40 pyenv local 3.11.4
Kr-MBP01: ~ 23-07-04 0:40:40 % 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
無事 終わった.確認のために パッケージが真っさらかどうか聞いてみる.
Kr-MBP01: ~ 23-07-04 0:51:35 % python Python 3.11.4 (main, Jul 3 2023, 23:07:49) [Clang 14.0.3 (clang-1403.0.22.14.1)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import sympy Traceback (most recent call last): File "<stdin>", line 1, in <module> ModuleNotFoundError: No module named 'sympy' >>> import numpy Traceback (most recent call last): File "<stdin>", line 1, in <module> ModuleNotFoundError: No module named 'numpy' >>>
コマンドも更新された.
Kr-MBP01: ~ 23-07-04 1:00:51 % which python /Users/user_name/.pyenv/shims/python
n. おわりに
最小限 のパッケージ requirements.txt
numpy sympy scipy DateTime einsteinpy ipython jupyter matplotlib pandas pip
を インストール
python -m pip install -r requirements.txt
してセットアップが完了した.