macOS安装labelImg踩坑汇总

Preface

最近有一个涉及到计算机视觉相关的项目,网上没有合适的数据集,需要自己整理一个数据集出来。
LabelImg作为图片标注工具,是在进行图片识别和视频分类等机器学习任务的训练集准备,不可少的工具。这里我也使用了LabelImg来做数据的标注。


如何安装labelImg

这里推荐看github官方文档,根据自己所使用的操作系统,进行安装。
因为我的系统是Mac OS X,所以执行如下命令

1
2
3
4
5
6
brew install python3
pip3 install pipenv
pipenv run pip install pyqt5==5.13.2 lxml
pipenv run make qt5py3
python3 labelImg.py
[Optional] rm -rf build dist; python setup.py py2app -A;mv "dist/labelImg.app" /Applications

但是在上面的命令执行过程中,可能会遇到一些问题,导致安装失败。我将整个安装过程所踩的坑整理在下方。


问题汇总

需要先将labelImg的代码仓库克隆到本地

上面提到的安装命令有一个是python3 labelImg.py,所以需要先有这个文件。

执行命令

1
2
git clone git@github.com:tzutalin/labelImg.git
cd /labelImg-master


指定镜像源

没有指定镜像源,使用官方的镜像源,可能网速会很慢。这里推荐使用清华的镜像源,示例

1
pip3 install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple


安装pyQt5

安装pyQt5,会报错。最终发现是因为python安装没有带openssl这个库。
macOS High Sierra: ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

解决办法

1
2
3
4
5
6
7
8
9
10
执行如下命令

brew uninstall openssl && brew install openssl && CFLAGS="-I$(brew --prefix openssl)/include" LDFLAGS="-L$(brew --prefix openssl)/lib" pyenv install 3.7.0

或者

brew uninstall --ignore-dependencies openssl && brew install openssl && CFLAGS="-I$(brew --prefix openssl)/include" LDFLAGS="-L$(brew --prefix openssl)/lib" pyenv install 3.7.0

# 然后再安装 PyQt5
pip3 install PyQt5 --default-timeout=1000 -i https://pypi.tuna.tsinghua.edu.cn/simple


RFE: pyenv update should regenerate shims unconditionally

执行如下命令

1
pyenv rehash


ReadTimeoutError

下载python库的时候,由于国内网络原因,python包的下载速度非常慢。会因为抛出错误ReadTimeoutError,而报错。

解决办法添加参数--default-timeout=1000即可,示例如下

1
pip3 install PyQt5 --default-timeout=1000

xcrun: error: active developer path (“/Applications/Xcode.app/Contents/Developer”) does not exist

如果报了这个错,执行如下命令

1
sudo xcode-select --reset

如果某一个包,安装过后,还是提示没有

上面的安装命令中,有的使用pipenv进行安装的。如果安装过后执行命令还是提示找不到的话,可以使用pip/pip3再安装一次。


参考资料

关注我的微信公众号[李一二],即时看更多的文章