【IT】M1 MacBookでのpyenvの再導入
皆さま
こんにちは
メインで使用しているMac BookをIntel CPU搭載の物から
M1チップ搭載のタイプへ変更しました。
新旧のMacをThunderbolt で接続し、
「移行アシスタント」で移行します。
アプリケーションは、再インストールとなりますが、
データは、概ねそのまま移行出来ます。
Intel Macでpyenv経由からインストールしたpythonが入っておりませんので
再導入します。
Homebrewを再導入し、pyenvをインストールしてから
pythonをインストールします。
$ pyenv install 3.11.6
python-build: use openssl from homebrew
python-build: use readline from homebrew
Downloading Python-3.11.6.tar.xz...
-> https://www.python.org/ftp/python/3.11.6/Python-3.11.6.tar.xz
Installing Python-3.11.6...
python-build: use tcl-tk from homebrew
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
BUILD FAILED (OS X 14.1.1 using python-build 20180424)
Inspect or clean up the working tree at /var/folders/nt/sz2fz64n1q10g7dhk1m8r9h00000gn/T/python-build.20231120184740.53117
Results logged to /var/folders/nt/sz2fz64n1q10g7dhk1m8r9h00000gn/T/python-build.20231120184740.53117.log
Last 10 log lines:
Traceback (most recent call last):
File "<frozen runpy>", line 189, in _run_module_as_main
File "<frozen runpy>", line 148, in _get_module_details
File "<frozen runpy>", line 112, in _get_module_details
File "/private/var/folders/nt/sz2fz64n1q10g7dhk1m8r9h00000gn/T/python-build.20231120184740.53117/Python-3.11.6/Lib/ensurepip/__init__.py", line 4, in <module>
import subprocess
File "/private/var/folders/nt/sz2fz64n1q10g7dhk1m8r9h00000gn/T/python-build.20231120184740.53117/Python-3.11.6/Lib/subprocess.py", line 104, in <module>
from _posixsubprocess import fork_exec as _fork_exec
ModuleNotFoundError: No module named '_posixsubprocess'
make: *** [install] Error 1
上記のエラーとなりpythonがインストール出来ませんでした。
<<対応手順>>
以下の対応手順にて実施します。
1.Xcode Command Line Toolsの再インストール
$ xcode-select -p
/Library/Developer/CommandLineTools
$ sudo rm -rf /Library/Developer/CommandLineTools
$ xcode-select -p
xcode-select: error: unable to get active developer directory...
$ ls -ag /Library/Developer
total 0
drwxr-xr-x 2 wheel 64 Jul 17 19:48 .
drwxr-xr-x 65 wheel 2080 Jun 28 12:36 ..
$ xcode-select --install
*GUIが立ち上がるのでデフォルトで進める
2.Homebrewを再インストール
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"
# 設定ファイルを一旦全て削除
$ sudo rm -rf /opt/homebrew
# アーキテクチャがarm64であることを確認
$ uname -m
arm64
# 再度、インストール
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
3.必要モジュールをインストール
brew install openssl readline sqlite3 xz zlib tcl-tk libjpeg
brew install coreutils
brew install pyenv
4.「.bash_profile」修正
前のパス等になっているため、以下の通り修正
# bashrc有効化
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
eval "$(/opt/homebrew/bin/brew shellenv)"
# pyenv
export PYENV_ROOT="$HOME/.pyenv"
##export PATH="$PYENV_ROOT/bin:$PATH" (このパスから下のパスへ変わったようです)
export PATH="$PYENV_ROOT/shims:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
export LDFLAGS="-L/opt/homebrew/opt/zlib/lib"
export CPPFLAGS="-I/opt/homebrew/opt/zlib/include"
export PKG_CONFIG_PATH="/opt/homebrew/opt/zlib/lib/pkgconfig"
## ↓Intel Mac時代に設定したこの環境変数が悪さをしていたと思われます。
## postgresql
##export ARCHFLAGS="-arch x86_64"
###export PGDATA="/usr/local/var/postgres"
5.再度、pythonをインストール
$ export ARCHFLAGS="-arch arm64"
$ pyenv install 3.11.6
python-build: use openssl from homebrew
python-build: use readline from homebrew
Downloading Python-3.11.6.tar.xz...
-> https://www.python.org/ftp/python/3.11.6/Python-3.11.6.tar.xz
Installing Python-3.11.6...
python-build: use tcl-tk from homebrew
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Installed Python-3.11.6 to /Users/lmf/.pyenv/versions/3.11.6
6.pythonの確認
$ pyenv global 3.11.6
$ python --version
Python 3.11.6
無事、pythonが再導入出来ました。
では