Catalinaクリーン・インストール & PyEnv を使った Python開発環境


Catalinaクリーン・インストール & PyEnv を使った Python開発環境


新しい macOS のインストールは、

  • 上書き(update)インストール
  • クリーン(clean)インストール

のどちらかを選択できる。

私は、アプリケーションやツールの管理を、パッケージ管理システムに移行したいので、クリーン・インストールを選択した。

クリーン・インストールには、
容量が 16GB以上の USBメモリもしくはSDカードなどの外部メモリー等が必要である。

事前準備

事前に準備するのは、

  • バックアップ
    • Timemachine の利用で良い
  • 空き容量が 8GB より大きな(実質16GB以上) USBメモリ か SDカード
  • Catalina のダウンロード

Catalina のダウンロード

App Store から 'macOS Cattalina' を入手し、ダウンロードが完了したら 終了 する。

起動ディスクの作成

ターミナルを起動し、起動ディスクを作成する。

以下のコマンドを実行する。

sudo /Application/Install macOS Catalina.app/Contents/Resource/creationinstallmedia --volume /Volumes/MyVolume

MyVolume は、適宜、自身の環境に合わせて変更すること。

参考サイト
How to create a bootable installer for macOS Catalina

再起動&インストール

起動ディスクの作成が完了したら、外部メモリーを指したまま、再起動を行う。

再起動の際は、command + R キーを押しながら、インストーラの起動を待つ。

起動が開始したらキーは離して良い。

インストール先のフォーマット

少し待つと 'OS X Utilities' 画面が表示される。

最下部の Disk Utility を選択起動し、インストール先のディスクのフォーマットを行う。

APFS(Case-sensitive) を選択した。

インストール

フォーマットが完了したら、 Disk Utility を終了し、 'OS X Utilities' 画面 に戻る。

メニューの上から二番目の 'Reinstall a new copy of macOS' を選択する。

'Continue' をクリックし、利用許諾に同意し、インストール先を選択する。

最後に 'Install' をクリックして、インストールを開始する。

しばらく待つと、インストールが完了し、ログイン画面が表示される。

参考サイト
How to do a clean install of macOS Catalina

アプリケーションのインストール(App Store)

購入済み、または導入してしていた アプリケーションを取捨選択し、インストールを行う。

  1. App Store を起動する
  2. Store -> View My Account で、購入&導入済みアプリを確認する
  3. 取捨選択して、インストールを行う

私が、Catalina にもインストールしたアプリは、次表の通り。

No. アプリ名称 カテゴリ 価格 備考
1 Pages Productivity Free Apple純正のワードプロセッサ
2 Numbers Productivity Free Apple純正の表集計ソフト
3 Keynote Productivity Free Apple純正のプレゼンテーションソフト
4 Xcode Development Free Apple純正の開発IDE
5 The Unarchiver Utilities Free アーカイブファイル名の文字コード対応有り
6 Slack Business Free チームのコミュニケーションと共同作業
7 LINE Social Networking Free
... ... ... ... ...

アプリケーションのインストール(Homebrew)

従来、または日本の MS-Windows 利用者の多くは、未だに次の手順でインストールを行っている。

  1. 開発元のダウンロードサイトを探す
  2. 個々のアプリケーションやツールをダウンロードする
  3. 依存のあるライブラリなどもダウンロードする
  4. インストールする

この方法に、メリットは一つも無い。

私も 'macOS High Sierra' まで、一部のツールはは、個別にダウンロード&インストールを行っていた。

'macOS Mojave' から App StoreHomebrew のみで環境を整えている。

この方法のメリットは、パッケージ管理のコマンド一つで、全てのアップデートが完了することである。

Homebrewのインストール

App Store に登録されていない数多くのソフトウェアは、パッケージ管理システムを利用してインストールする。macOS では、パッケージ管理システムは、次の二つがある。

私は、Homebrew派なので、ターミナルを起動し、次のコマンドを実行する。

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

アプリケーションのインストール

インストールしたアプリケーションの一覧(アルファベット順)を、次表に示す。

No. アプリ名称 開発元 インストール・コマンド
1 Atom https://atom.io brew cask install atom
2 CaliBre https://calibre-ebook.com brew cask install caribre
3 GIMP https://www.gimp.org brew cask install gimp
4 gitkraken https://www.gitkraken.com brew cask install gitkraken
5 google-backup-and-sync https://www.google.com/ brew cask install google-backup-and-sync
6 google-chrome https://www.google.com/ brew cask install google-chrome
7 libreoffice https://www.libreoffice.org brew cask install libreoffice
8 libreoffice-language-pack https://www.libreoffice.org brew cask install libreoffice-language-pack
9 skype https://www.skype.com/ brew cask install skype
10 xquartz https://www.xquartz.org brew cask install xquartz

libreoffice-language-pack この言語パックは、 LibreOffice を一度起動した後で、インストールする必要がある。

Pythonのインストール

macOS Catalina(Version 10.15) に組込まれた Python は、

$ python3 --version
Python 3.7.3

となったので、このままでも良いが、 PyEnv を利用し複数のバージョンを利用できる環境を整える。

PyEnvのインストール

PyEnv のインストールは、 git clone するのが基本だが macOS では Homebrew を利用する。

$ brew update
$ brew install pyenv

インストール後の設定は、 Homebrew on macOS を参考に行う。

PyEnv を利用したインストールでは、 python-build (ソースからコンパイル)が実行される。

gcc開発環境の準備

gcc開発環境に必要なモジュールは全て Homebrew でインストールする。
インストールしたパッケージは、次の四つのライブラリである。

$ brew install readline
$ brew install xz
$ brew install zlib
$ brew install openssl

インストールしたパッケージのリスト(関連してインストールされたパッケージを含む)

$ brew list
autoconf    isl     mpfr        [email protected] pyenv       xz
gmp     libmpc      openssl     pkg-config  readline    zlib

インストールに失敗

通常の pyenv install 3.7.4 を行なうとエラーを吐いて失敗する。

$ pyenv install 3.7.4
python-build: use [email protected] from homebrew
python-build: use readline from homebrew
Downloading Python-3.7.4.tar.xz...
-> https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz
Installing Python-3.7.4...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk

BUILD FAILED (OS X 10.15 using python-build 20180424)

Inspect or clean up the working tree at /var/folders/27/pytgk7q93qlb7k03r7_3p_mc0000gn/T/python-build.20191022181911.1512
Results logged to /var/folders/27/pytgk7q93qlb7k03r7_3p_mc0000gn/T/python-build.20191022181911.1512.log

Last 10 log lines:
checking for --enable-universalsdk... no
checking for --with-universal-archs... no
checking MACHDEP... checking for --without-gcc... no
checking for --with-icc... no
checking for gcc... clang
checking whether the C compiler works... no
configure: error: in `/var/folders/27/pytgk7q93qlb7k03r7_3p_mc0000gn/T/python-build.20191022181911.1512/Python-3.7.4':
configure: error: C compiler cannot create executables
See `config.log' for more details
make: *** No targets specified and no makefile found.  Stop.

CPPFLAGSを設定したインストール

zlib をインストールしているのに python-build: use zlib from xcode sdk と出てきているので

Common build problems を読んで

Build failed: "ERROR: The Python zlib extension was not compiled. Missing the zlib?"

にしたがって CPPFLAGS を設定し pyenv install を行い、成功した。

$ CPPFLAGS="-I$(brew --prefix zlib)/include" pyenv install -v 3.7.4
...
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-19.0.3 setuptools-40.8.0
/var/folders/27/pytgk7q93qlb7k03r7_3p_mc0000gn/T/python-build.20191022202526.9074 ~
~
Installed Python-3.7.4 to /Users/mitsu/.pyenv/versions/3.7.4

これにて、 PyEnv の環境が整った。