LoginSignup
1
0

More than 1 year has passed since last update.

asdf/pyenv/python-buildでPythonをインストールしようとするとModuleNotFoundError: No module named '_socket'が出る

Last updated at Posted at 2022-06-06

問題

asdfを使ってPython 3.10.4をインストールしようとしたら、 ModuleNotFoundError: No module named '_socket' が出て失敗した。

環境と問題のコマンド

環境は以下のとおり。

  • macOS Monterey 12.4
  • asdf v0.10.1
  • asdf-python 57a4d725e47b8624cc97cabcac2b064f0474b8b2

実行したのは以下のコマンド。

asdf install python 3.10.4

原因:pyenv(python-build)が悪い

asdf-pythonは内部的にはpyenvを使っている。
もう少し正確に言うと、pyenvはPythonをダウンロードしローカルビルドするためのツールコマンド python-build というものを持っていて、 asdf-pythonは python-build を実行することでPythonインストールを実現している。

なので探すべきはpyenvリポジトリーのissueだ。

んで、まさしくドンピシャなのがあった。

どうやら環境変数として SDKROOTMACOSX_DEPLOYMENT_TARGET を指定すればよいらしい。なぜかはわからないが……。
以下のコマンドを実行することで正常にインストールが完了した。

SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk \
MACOSX_DEPLOYMENT_TARGET=12.3 \
asdf install python 3.10.4
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0