プロジェクト

全般

プロフィール

Python開発環境 macOS

macOSのPython実行環境

macOSのバージョンとPython

macOS 12 Monterey以降

標準では Python 実行環境が用意されなくなりました。
コマンドライン開発ツール(Command Line Tools for Xcode)を追加インストールすることで Python が利用可能となります。

OSバージョン OS標準 Ptyhon Version Path
macOS 12.5.1 No, 別途コマンドライン開発者ツールに含まれる 3.8.9 /usr/bin/python3
macOS 13.4.1 3.9.6 /usr/bin/python3

HomeBrewでPythonをインストールすることが可能です。
HomeBrewでは、python3.7〜3.12(2024-01-14時点)が提供されています。

  • /opt/homebrew/bin/python3.x (xはインストールしたバージョンにより異なる)

HomeBrewでPython

HomeBrewでPythonが提供されています。

brew でpythonを探す

pythonをbrew searchで検索します。python 3.7〜3.12が提供されています。

% brew search /^python@/ 
==> Formulae
python@3.10 ✔        python@3.11          python@3.12 ✔        python@3.7           python@3.8           python@3.9
%

インストールは、brew install pythonで最新版のpython@3.12がインストールできます。(上述のsearchは既にpython 3.10、python 3.12がインストールされた後の実施例)

pythonの実行

HomeBrewでインストールされたpythonは、コマンドが /opt/homebrew/bin の下に、python3.10 や python3.12 とバージョン付きのファイル名で置かれます。

% python3.12 -VV      
Python 3.12.1 (main, Dec  8 2023, 18:57:37) [Clang 14.0.3 (clang-1403.0.22.14.1)]
% 
  • 注)python3 とコマンドを実行すると、/usr/bin/python3 コマンドが実行されます。これは、Command Line Tools for Xcode のインストールで入れられたコマンドで、今時点では 3.9.6のバージョンです。HomeBrewの実行に必要なツールなので必ず入ってしまうのでコマンド名に注意です。

tkinterを使う

HomeBrewでインストールするPython3には、tkinterが含まれていません。HomeBrewではpython3とは別にpython-tkが提供されているので、併せてインストールします。

% brew install python-tk

仮想環境

venv

PythonをOS共通の領域にインストールし、そこに色々なアプリケーションでそれぞれ個別に必要とするパッケージを共通領域にインストールすると色々な干渉が生じます。
そこで、Pythonの標準機能 venv を使って、アプリケーション毎に固有のpython実行環境を「仮想環境」として用意します。

使用例

venv作成

helloディレクトリを作成し、そこに Hello worldプログラムとvenv仮想実行環境を用意します。

work% mkdir hello
work% cd hello
hello% python3 -m venv venv
hello% % ls -F venv
bin/        include/    lib/        pyvenv.cfg
  • -m venv でvenvモジュールを実行、最後の引数のvenvは作成するディレクトリ名です。(たまたま同じvenvとしているだけです)
仮想環境の実行
hello% source venv/bin/activate
(venv) hello % python --version
Python 3.10.6
仮想環境に、外部ライブラリのインストール
(venv) hello % pip install matplotlib

仮想環境にインストールした外部ライブラリの一覧を表示

(venv) hello % pip list
Package         Version
--------------- -------
cycler          0.11.0
fonttools       4.37.1
kiwisolver      1.4.4
matplotlib      3.5.3
numpy           1.23.3
packaging       21.3
Pillow          9.2.0
pip             22.2.2
pyparsing       3.0.9
python-dateutil 2.8.2
setuptools      63.4.3
six             1.16.0
(venv) hello % 

venvディレクトリの下を覗いてみると、外部ライブラリが保管されているのがわかります。

(venv) hello % ls venv/lib/python3.10/site-packages 
PIL                    numpy
Pillow-9.2.0.dist-info            numpy-1.23.3.dist-info
__pycache__                packaging
_distutils_hack                packaging-21.3.dist-info
cycler-0.11.0.dist-info            pip
cycler.py                pip-22.2.2.dist-info
dateutil                pkg_resources
distutils-precedence.pth        pylab.py
fontTools                pyparsing
fonttools-4.37.1.dist-info        pyparsing-3.0.9.dist-info
kiwisolver                python_dateutil-2.8.2.dist-info
kiwisolver-1.4.4.dist-info        setuptools
matplotlib                setuptools-63.4.3.dist-info
matplotlib-3.5.3-py3.10-nspkg.pth    six-1.16.0.dist-info
matplotlib-3.5.3.dist-info        six.py
mpl_toolkits
プログラムの記述

matlibplotのサンプルコードを記述します。
https://matplotlib.org/stable/users/getting_started/

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2 * np.pi, 200)  # 0以上 2π以下の範囲で等間隔の200個の値を numpyのndarray として生成
y = np.sin(x)

fig, ax = plt.subplots()  # Figure(描画領域)と Axes(グラフ)を同時に生成、ここはAxesが1個
ax.plot(x, y)
plt.show()
実行
(venv) hello % python hello_plot.py

venv でmatplotlibのサンプル

仮想環境の利用終了

deactivateを実行すると、仮想環境を終了します。

(venv) hello % deactivate
hello % 

問題解決

python3 のパスに注意

/opt/homebrew/bin/python3 がなくなったので、python3を実行すると、/usr/bin/python3 が実行されます。

MacOS: Ventura 13.4.1

Homebrewで、, をインストールしていますが、python3コマンドを実行すると、バージョンが何故か3.9.6と表示されます。

% python3 --version
Python 3.9.6
% which python3
/usr/bin/python3
  • PATHは、先頭に/opt/homebrew/bin が設定済
    hello % echo $PATH
    /opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin <後略>
    
  • /opt/homebrew/bin の下のpythonコマンド
    % ls /opt/homebrew/bin/|grep python
    python3.10
    python3.10-config
    python3.12
    python3.12-config
    
% python3.12 --version
Python 3.12.1

MacOS 12以降はpythonが標準では提供されていないのですが、Command Line Tools for Xcodeをインストールすることでpython3がインストールされます。
Homebrew経由でインストールしたPythonは、/opt/homebrew/binの下にバージョン2桁まで含むファイル名でインストールされるので、これを実行するには、マイナーバージョン(2桁)まで指定したコマンドを実行します。


2ヶ月前に更新