asdfでPythonのバージョンを追加インストールしようとしたら、下のようなエラーが起きて、できない状況に遭遇した。
% asdf install python 3.12.3 python-build 3.12.3 /Users/LOGNAME/.asdf/installs/python/3.12.3 python-build: use openssl@3 from homebrew python-build: use readline from homebrew Downloading Python-3.12.3.tar.xz... -> https://www.python.org/ftp/python/3.12.3/Python-3.12.3.tar.xz Installing Python-3.12.3... python-build: use tcl-tk from homebrew python-build: use readline from homebrew python-build: use ncurses from homebrew python-build: use zlib from xcode sdk BUILD FAILED (OS X 13.4.1 using python-build 2.4.0-2-ge1f07da7) Inspect or clean up the working tree at /var/folders/4c/wcry6r391s5cxyc66bnktgf80000gn/T/python-build.20240412084452.14725 Results logged to /var/folders/4c/wcry6r391s5cxyc66bnktgf80000gn/T/python-build.20240412084452.14725.log Last 10 log lines: python anaconda3-2023.09-0 make: *** [Modules/_hacl/libHacl_Hash_SHA2.a] Error 126 No preset version installed for command ar Please install a version by running one of the following: asdf install python 3.8.18 or add one of the following versions in your config file at python anaconda3-2023.09-0 make: *** [Modules/expat/libexpat.a] Error 126
ちなみに、このときのasdfのpythonプラグインの状態は以下のようになっている。
% asdf list python 3.10.12 3.10.8 3.11.4 3.12.2 3.6.15 3.8.10 3.8.17 *3.8.18 3.9.17 3.9.18 anaconda3-2023.09-0 miniconda3-3.11-23.10.0-1 miniconda3-3.8-23.10.0-1
% cat ~/.tool-versions python 3.8.18 nodejs 18.18.0 golang 1.20.8
Pythonバージョンの3.8.18
もanaconda3-2023.09-0
もインストール済みなのに、「どちらかをインストールせよ」と矛盾したことを言ってくる。
エラーメッセージ内の "No preset version installed for command
" で指摘してされているar
コマンドの中身を確認すると、下のようになっていた。
% cat ~/.asdf/shims/ar #!/usr/bin/env bash # asdf-plugin: python anaconda3-2023.09-0 exec /usr/local/opt/asdf/libexec/bin/asdf exec "ar" "$@" # asdf_allow: ' asdf '
多分これが下のようになっていないといけないんじゃないかと想像して、ar
コマンドの内容を変更して、Pythonバージョンの追加を再度試みてみた。
% vi ~/.asdf/shims/ar -# asdf-plugin: python anaconda3-2023.09-0 +# asdf-plugin: python 3.8.18
% asdf reshim % asdf install python 3.12.3 python-build 3.12.3 /Users/LOGNAME/.asdf/installs/python/3.12.3 python-build: use openssl@3 from homebrew python-build: use readline from homebrew Downloading Python-3.12.3.tar.xz... -> https://www.python.org/ftp/python/3.12.3/Python-3.12.3.tar.xz Installing Python-3.12.3... python-build: use tcl-tk from homebrew python-build: use readline from homebrew python-build: use ncurses from homebrew python-build: use zlib from xcode sdk BUILD FAILED (OS X 13.4.1 using python-build 2.4.0-2-ge1f07da7) Inspect or clean up the working tree at /var/folders/4c/wcry6r391s5cxyc66bnktgf80000gn/T/python-build.20240412090619.17267 Results logged to /var/folders/4c/wcry6r391s5cxyc66bnktgf80000gn/T/python-build.20240412090619.17267.log Last 10 log lines: ld: warning: directory not found for option '-L/Users/LOGNAME/.asdf/installs/python/3.12.3/lib' ld: warning: directory not found for option '-L/Users/LOGNAME/.asdf/installs/python/3.12.3/lib' ld: warning: directory not found for option '-L/Users/LOGNAME/.asdf/installs/python/3.12.3/lib' ld: warning: directory not found for option '-L/Users/LOGNAME/.asdf/installs/python/3.12.3/lib' ld: warning: directory not found for option '-L/Users/LOGNAME/.asdf/installs/python/3.12.3/lib' ld: warning: directory not found for option '-L/Users/LOGNAME/.asdf/installs/python/3.12.3/lib' ld: warning: directory not found for option '-L/Users/LOGNAME/.asdf/installs/python/3.12.3/lib' ld: warning: directory not found for option '-L/Users/LOGNAME/.asdf/installs/python/3.12.3/lib' ld: warning: directory not found for option '-L/Users/LOGNAME/.asdf/installs/python/3.12.3/lib' ld: warning: directory not found for option '-L/Users/LOGNAME/.asdf/installs/python/3.12.3/lib'
エラーメッセージの内容は変わったが、やはりダメだ。
それなら、最初のエラーメッセージで指摘されているanaconda3-2023.09-0
が存在すること自体が悪いのかもしれないと思ったので、これを削除した上で、再度試みてみたら上手く行った。
% asdf uninstall python anaconda3-2023.09-0 % asdf reshim % asdf install python 3.12.3 python-build 3.12.3 /Users/LOGNAME/.asdf/installs/python/3.12.3 python-build: use openssl@3 from homebrew python-build: use readline from homebrew Downloading Python-3.12.3.tar.xz... -> https://www.python.org/ftp/python/3.12.3/Python-3.12.3.tar.xz Installing Python-3.12.3... python-build: use tcl-tk from homebrew python-build: use readline from homebrew python-build: use ncurses from homebrew python-build: use zlib from xcode sdk Installed Python-3.12.3 to /Users/LOGNAME/.asdf/installs/python/3.12.3 asdf: Warn: You have configured asdf to preserve downloaded files (with always_keep_download=yes or --keep-download). But asdf: Warn: the current plugin (python) does not support that. Downloaded files will not be preserved.
ちなみに、ググって調べてみると、この障害現象はasdfの他の言語プラグインでも発生するらしい。
上のような現象が起きた場合は、エラーメッセージ内で指摘されたプラグインの特定のバージョンを一旦アンインストールすれば解決できるんじゃないだろうか。
なお、anaconda3-2023.09-0
が存在しており上のような障害現象が起きている状態で、asdfのflutterプラグインでも下のような不可解な現象に遭遇した。
% asdf plugin add flutter % asdf list all flutter No compatible versions available (flutter )
これもanaconda3-2023.09-0
をアンインストールしたら解決することができた。
asdfではpythonプラグインのanacondaは使わない方が無難だということを思い知らされた。
【参照リンク】