はじめに
MacにPythonの開発環境を構築する方法についてまとめました。
ここではHomebrewとpyenv、Python、OpenCVをインストールして、PythonからOpenCVが使える環境構築について解説します。
環境構築の手順
Pythonの環境構築の手順とインストールするバージョンは以下の通りです。
- Homebrewのインストール
- pyenvのインストール
- Pythonのインストール
- OpenCVのインストール
インストールするMacは本投稿執筆時で最新のmacOS Ventura 13.1 です。
Homebrew
Homebrewとは
Homebrewはパッケージ管理システムの一つです。パッケージ管理システムは主にオープンソースのアプリやライブラリなどを依存関係も含めてインストール/アンインストールを一元管理するもので、macOS以外にLinuxでも動作します。
Homebrewのインストール
HomebrewのWebサイトにインストールのためのコマンドが掲載されています。
赤い下線部分がHomebrewをインストールするコマンドです。赤い矢印で示すアイコンをクリックするとインストールスクリプトをコピーすることができます。
下記にもスクリプトを貼っておきます。
% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
ターミナルを起動して、コピーしたインストールスクリプトをペーストして、リターンキー押下するとインストールが開始されます。
pyenv
pyenvとは
pyenvはPythonのバージョンをインストールするためのツールです。複数のバージョンをインストールして切り替えたり、ディレクトリ毎にインストールするバージョンを変えて、個別に管理するために使用します。
pyenvのインストール
インストールはHomebrewから行います。ターミナルで下のコマンドを実行します。
% brew install pyenv
続いて、下のコマンドを実行して、.zshrcにPythonのパスの設定を行います。
設定の内容はpyenvのGitHubに記載されています。
% echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc % echo 'export PATH="$PYENV_ROOT/shims:$PATH"' >> ~/.zshrc % echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc % echo 'eval "$(pyenv init -)"' >> ~/.zshrc
次のコマンドで設定を反映させます。
% source ~/.zshrc
Python
インストール可能なバージョンを調べる
pyenvでインストール可能なバージョンを下のコマンドで確認することが出来ます。
その中から、自分がインストールするバージョンを選択します。
実際にインストール可能なバージョンを確認してましょう。
% pyenv install -list 2.1.3 2.2.3 2.3.7 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.5.0 (以下省略)
インストール可能なバージョンがたくさん表示されます。
anacondaやironpythonなどを一覧に見ることができますが、執筆時点でのPythonの安定版の最新バージョンである3.11.1をインストールします。
Pythonのインストール
% pyenv install 3.11.1
何やら、"Python lzma extension"がインストールできなかったという警告が表示されました。
Python自体は一応インストールできているようですが、気持ち悪いので対処したいと思います。
% pyenv install 3.11.1 python-build: use readline from homebrew python-build: use zlib from xcode sdk Traceback (most recent call last): File "<string>", line 1, in <module> File "/Users/XXXXXXXXXX/.pyenv/versions/3.11.1/lib/python3.11/lzma.py", line 27, in <module> from _lzma import * ModuleNotFoundError: No module named '_lzma' WARNING: The Python lzma extension was not compiled. Missing the lzma lib? Installed Python-3.11.1 to /Users/XXXXXXXXXX/.pyenv/versions/3.11.1
上のメッセージを読むと"lzma"見つからなかったようなので、あらかじめ"lzma"をインストールしてからPythonをインストールします。
Homebrewでインストールできないか、検索してみます。
% brew search lzma ==> Formulae lima If you meant "lzma" specifically: lzma is now part of the xz formula: brew install xz
メッセージで"lzma"は"xz"の一部になっていると教えてくれました。
先ほどインストールしたPython 3.11.1をアンインストールしてから、"xz"をインストールします。
% pyenv uninstall 3.11.1
続いて、"xz"をインストールしてから、Python 3.11.1を再インストールします。
% brew install xz
% pyenv install 3.11.1 python-build: use openssl@1.1 from homebrew python-build: use readline from homebrew Downloading Python-3.11.1.tar.xz... -> https://www.python.org/ftp/python/3.11.1/Python-3.11.1.tar.xz Installing Python-3.11.1... python-build: use readline from homebrew python-build: use zlib from xcode sdk Installed Python-3.11.1 to /Users/XXXXXXXXXX/.pyenv/versions/3.11.1
警告が出ることなくインストールできました。
バージョンを指定する
次はpyenvでバージョンの確認をします。pyenv versions
でインストール済みのPythonのバージョンの一覧を確認することが出来ます。
% pyenv versions * system (set by /Users/XXXXXXXXXX/.pyenv/version) 3.11.1
pyenvでは、今いるディレクトリ以下(local)で優先されるされるPythonのバージョンと、システム全体(global)でのPythonのバージョンを切り替えることが出来ます。pyenv versions
で先頭に”*”(アスタリスク)がついている方がglobalであることを示しています。
globalのバージョンを3.11.1に変更します。
% pyenv global 3.11.1
変更が反映されているか確認します。
% python --version Python 3.11.1
OpenCV
OpenCVとは
OpenCVは”Open Source Computer Vision Library”を略したもので、オープンソースの画像処理ライブラリです。
C++言語で開発されたライブラリですが、現在では様々なプログラミング言語をサポートしていて、Pythonで利用することも出来ます。
OpenCVのインストール
OpenCVをPythonで利用するためにpipというツールを使用してインストールします。
pipとはPythonの標準機能として組み込まれたPythonで開発されたパッケージを管理するためのパッケージ管理システムです。
ターミナルでpipを操作します。パッケージをインストールするためのコマンドは以下の形式となります。
OpenCVをインストールするコマンドは下の様になります。
% python -m pip install opencv-python
おわりに
macOSにPython をインストールする過程を解説しました。
pyenvを使うことで複数のバージョンを簡単にインストールできて、バージョンの切り替えも行うことも可能です。
また、本投稿でOpenCVを利用できる環境が整いましたので、下の記事を参考にOpenCVを使ってみてください。
下の投稿では、コードエディタのVisual Studio Code(VS Code)を使って、Pythonのデバッグができる環境を整えるまでを解説しています。
最後までご覧頂きありがとうございました。
(広告)Python関連書籍をAmazonで探す参考リンク
Homebrew
The Missing Package Manager for macOS (or Linux).
GitHub - pyenv/pyenv: Simple Python version management
Simple Python version management. Contribute to pyenv/pyenv development by creating an account on GitHub.
1. Command line and environment
The CPython interpreter scans the command line and the environment for various settings. CPython implementation detail: Other implementations’ command line schemes may differ. See Alternate Impleme...
GitHub - opencv/opencv-python: Automated CI toolchain to produce precompiled opencv-python, opencv-python-headless, opencv-contrib-python and opencv-contrib-python-headless packages.
Automated CI toolchain to produce precompiled opencv-python, opencv-python-headless, opencv-contrib-python and opencv-contrib-python-headless packages. - GitHub - opencv/opencv-python: Automated CI...