見出し画像

【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が再導入出来ました。

では

この記事が気に入ったらサポートをしてみませんか?