【M1/M2 Mac】Tkinterも使えるようにする! Python環境構築

2023年4月15日

MacBook Pro 14inchを購入して、Pythonの開発環境を構築した時のメモです。
できるだけ、コピペでできるように、ソースを用意しています。

Macには、既にPythonが入っていますが、最新ではありません。使い勝手が悪いです。

ここでは最新バージョンで、アプリ開発によく使われるGUIライブラリのTkinterやPython用の統合開発環境であるIDLE(Python用の統合開発環境(IDLEと略記:Integrated DeveLopment Environment))が使えるように、Pythonをインストールして環境構築を行なっていく手順を紹介します。

Macでは初期状態でターミナルがインストールされていますので、こちらを使っていきます。

MacはデフォルトでPythonが含まれていますので、pyenvを使用し、複数のPythonバージョンを管理してPython実行環境を作っていきます。

Macではコマンドツール類はパッケージを管理できるHomebrewを利用します。

以下の環境と条件で、 Pythonの環境を整えていく手順になります。

– シェルはzsh
– pyenv利用
– Anaconda/ Minicondaは使わない
– Python 3.11.2 (2023.3での最新版)をインストール

自分のMacがなんのシェルを使用しているか確認する

Macにデフォルトで入っている、ターミナルを使って環境構築をしていきます。

シェルとは
OSとアプリケーションの間に立ってユーザからの要求をシステムに伝えるためのユーザインターフェイス。コマンドを入力することで動くプログラムのこと

ターミナルの開き方

「Finder」のメニューバー「移動」→「ユーティリティ」フォルダを選びます。Finderが開き、「ターミナル」という項目があるので、ダブルクリックで開きます。

Mac ターミナルCatalina世代以前は bash、 Catalina世代以降は zsh になります。ターミナルを立ち上げた時の、上部のタイトルバーで確認することができます。

bashの設定ファイルは ”.bash_profile“
zshの設定ファイルは ”.zshrc“

デフォルトシェルがbashの人は、”.zshrc“ を ”.bash_profile“ に置き換えて進めます。

デフォルトのPythonのバージョンを調べる

MacにはデフォルトのPythonが入っています。バージョンを調べるには、ターミナルで、以下のコマンドを入力します。

python --version

Homebrewをインストール

macOS上で動作するパッケージ管理ツール Homebrew をインストールします。

ただ、Xcode がインストールされていないと Homebrew をインストールできないので、まずは Xcodeを入れましょう。ターミナルに下をコピペしてリターンキーを押して実行します。

xcode-select --install

Xcode がインストールできたら、Homebrewをインストールします。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

以下の内容のメッセージが表示されるはずです。

Warning: /opt/homebrew/bin is not in your PATH.
  Instructions on how to configure your shell for Homebrew
  can be found in the 'Next steps' section below.
==> Installation successful!
 -- 中略 --
==> Next steps:
- Run these three commands in your terminal to add Homebrew to your PATH:
    echo '# Set PATH, MANPATH, etc., for Homebrew.' >> /Users/{ユーザー名}/.zprofile
    echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/{ユーザー名}/.zprofile
    eval "$(/opt/homebrew/bin/brew shellenv)"
- Run brew help to get started
- Further documentation:
    https://docs.brew.sh

指示通り、ターミナルにHomebrewのPATHを加えます。
具体的には、==> Next steps:にある、以下の部分を、ターミナルにコピーします。

echo '# Set PATH, MANPATH, etc., for Homebrew.' >> /Users/{ユーザー名}/.zprofile
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/{ユーザー名}/.zprofile
{ユーザー名}は、各自の環境に合った内容が入っているはずなので、置き換えてください。

ターミナルに設定ファイルを再読み込みさせます。

source ~/.zprofile

これで環境変数PATHにhomebrew関係のパスが追加されました。

pyenvをインストール

brewをアップデートします。

brew update

brewよりpyenvをインストールします。

brew install pyenv

pyen使えるように、シェルの設定をします。

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

tcl-tkおよびxzをインストール

tkinterはPythonの標準ライブラリですが、tkinterの依存先であるTcl/TkというGUIツールがないとエラーが起こります。そして、M1やM2のMacintoshでは、入っていないようです。

なので、Pythonをインストールする前に、TkinterとIDLEを使えるようにするため、tcl-tkおよびxzをインストールします。

xzをインストール

brew install xz

tcl-tkをインストール

brew install tcl-tk

インストールしたtcl-tkの詳細を確認しましょう。

brew info tcl-tk

Vimを活用して.zshrcファイルを編集します。

vi ~/.zshrc 

bashの場合は.bash_profileファイルを編集します。

vi ~/.bash_profile

.zshrcファイル(.bash_profileファイル)へ以下を記述します。

「i 」キーを押して編集モードにし、以下を追加します。

export PATH="/usr/local/opt/tcl-tk/bin:$PATH"
export CPPFLAGS="-I/usr/local/opt/tcl-tk/include"
export PKG_CONFIG_PATH="/usr/local/opt/tcl-tk/lib/pkgconfig"
export PYTHON_CONFIGURE_OPTS="--with-tcltk-includes='-I/usr/local/opt/tcl-tk/include' --with-tcltk-libs='-L/usr/local/opt/tcl-tk/lib -ltcl8.6 -ltk8.6'"

「esc」キー を押して編集モードを終了し、

以下のコマンドを入力して、vimを保存終了します。

:wq

設定ファイルの再読み込みをします。

source ~/.zshrc

bashの場合は以下のコマンドになりますね。

source ~/.bash_profile

pyenvでPythonの最新版をインストール

PythonをPyenvを使ってインストールします。ここでは、現時点(2023年3月13日)で新しい、3.11.2をインストールします。

pyenv install 3.11.2

pyenvでインストールしたPythonをglobal化

インストールしたPythonをメインで使用するように、グローバル化します。

pyenv global 3.11.2

インストールしたPythonが選択されているか確認してみましょう。

pyenv versions

これで、PythonでTkinterとIDLEが使えるようになりました。

pyenvコマンドの例
インストールできる Python のバージョンを表示する
pyenv install --list

Tkinterが動くか調べるコマンド

Tkinterが使えるかどうか試してみましょう。

python -m tkinter

tkウィンドウが表示されれば、Tkinterが使えるようになっています。

IDLEは、Tkinterを使用しているので、もちろんIDLEを使用することもできます。


IDLEを起動する

IDLEを使ってみましょう。コマンドラインで、 idle と入力します。

idle

IDLEが起動できれば、OKです。IDLEを終了するときは、以下を入力するとターミナルに戻ります。

quit()

各パッケージのインストール

使用したいモジュールはpipコマンドを使って、インストールすることができます。

pip install requests pip install beautifulsoup4

何がpipでインストールされているか確認するときは、以下を入力します。

pip list

既に Pythonをインストールして使用している場合

Pythonを既に使っている場合で、TkinterやIDLEなどを使いたい場合、インストールし直しになります。
再インストール作業に入る前に、下準備として、pipで入れたパッケージリストを保存しておくと、パッケージを復元することができます。

現環境で動作するパッケージ情報をrequirements.txtファイルへ書き込み

pip freeze > requirements.txt

requirements.txtファイルを元にパッケージ情報の復元(requirements.txtがある箇所で実行する)

pip install -r requirements.txt
[st-kaiwa1]これでなんとななると思います。ふぅ[/st-kaiwa1]