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
無事起動しました!