M1 MacでLabelImgを使うまで (virtualenv編)

【環境】
PC: MacBook Pro (13-inch, M1, 2020)
OS: macOS Big Sur (11.5.1)

LabelImgを使いたく、Pythonの環境を作成 (virtualenv)

% mkvirtualenv LabelImg -p python3

その後、pyqt5をインストールしようとしたら

% pip install pyqt5==5.12.1

下記エラーが発生

ERROR: Could not find a version that satisfies the requirement pyqt5==5.12.1 (from versions: 5.14.0, 5.14.1, 5.14.2, 5.15.0, 5.15.1, 5.15.2, 5.15.3, 5.15.4)
ERROR: No matching distribution found for pyqt5==5.12.1

色々ググったけど、これといった解決方法を見つけられなかった。pyqt5のバージョンを指定しなくても結局インストールは出来ず...orz

% pip install pyqt5

もしかしたらPythonのバージョン問題かな?と思ったので現在使用しているPythonのバージョンを確認

% python -V

Python 3.9.6

Python3.7で試そうと思ったけど、virtualenvでpythonのバージョンを指定したことがなかったなーと。現在のvirtualenvがそもそもどこのpythonを見ているか確認するためにzshrcファイルを確認(~/.zshrc)

% cat ~/.zshrc

# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/opt/homebrew/bin/python3

で、/opt/homebrew/bin/python3 のpython3のバージョンって何使ってんの?と思い/opt/homebrew/bin/までcdで移動してみる

% cd /opt/homebrew/bin/python3

python3がどこを参照しているか見てみる

% ls -la | grep python3

python3 -> ../Cellar/python@3.9/3.9.6/bin/python3​

python3.9様発見

じゃ、mkvirtualenvでpython環境を作成する時に、python3.7のパスを指定してあげればいいんじゃね?と思いpython3.7をまず用意することに。

% brew install python@3.7

python@3.7: The x86_64 architecture is required for this software.
Error: An unsatisfied requirement failed this build.

Intel版アーキテクチャが必要って怒られた。

ibrewというintel版があったのでこれを新たにインストール

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

zshrcをvimで編集

% vim ~/.zshrc

下記を追加して保存

alias ibrew="arch -x86_64 /usr/local/bin/brew"

編集した内容を反映させる

% source ~/.zshrc

ibrewでpython3.7をインストール

% ibrew install python@3.7

ログにpython3.7のパスを発見

Python has been installed as
 /usr/local/opt/python@3.7/bin/python3

python3.9の環境を一旦削除して、同じ名前でpython3.7の環境を作成

% rmvirtualenv LabelImg
% mkvirtualenv LabelImg -p /usr/local/opt/python@3.7/bin/python3

Pythonのバージョンを確認

% python -V

Python 3.7.11

キタ!

それではpyqt5をインストールしてみる(ついでにlxmlも)

% pip install pyqt5==5.12.1 lxml

Collecting pyqt5==5.12.1
 Using cached PyQt5-5.12.1-5.12.2-cp35.cp36.cp37.cp38-abi3-macosx_10_6_intel.whl (37.8 MB)
Collecting lxml
 Using cached lxml-4.6.3-cp37-cp37m-macosx_10_9_x86_64.whl (4.5 MB)
Collecting PyQt5_sip<4.20,>=4.19.14
 Using cached PyQt5_sip-4.19.19-cp37-cp37m-macosx_10_6_intel.whl (52 kB)
Installing collected packages: PyQt5-sip, pyqt5, lxml
Successfully installed PyQt5-sip-4.19.19 lxml-4.6.3 pyqt5-5.12.1

クローンし移動

% git clone https://github.com/tzutalin/labelImg.git
% cd labelImg

make

% make qt5py3

pyrcc5 -o libs/resources.py resources.qrc

labelImgを起動してみます

% python3 labelImg.py

無事起動しました!

スクリーンショット 2021-08-08 20.47.30








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