因疫情带动了口罩识别等项目特殊需求,组织在家工作的多位平时从事非技术工作的同事参加口罩图片数据的收集和标注,大家在家用的多是自己的本子,安装的操作系统自然就是既有Windows也有Mac,不同操作系统的本子上安装过程中遇到多个不同的问题,对于解决办法予以记录一下便于以后再次遇到时快速解决。
Windows专业版和Ubuntu系统安装的过程按照https://github.com/tzutalin/labelImg列出的安装步骤做就差不多,当然,里面pyqt5和pyqt5-tools之类的包如果不采用操作系统的安装命令改用pip安装可能会非常慢或连接超时出错,对于Linux可以设置~/.pip/pip.conf文件,里面的内容为:
[global]
trusted-host=mirrors.aliyun.com
index-url=https://mirrors.aliyun.com/pypi/simple/
对于Windows,可以设置C:\Users\<user>\pip\pip.ini,文件内容为:
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
或者提前把这些包的whl文件从相应的网站下载下来本地安装,例如,从阿里云上下载http://mirrors.aliyun.com/pypi/simple/pyqt5/到本地后安装:
pip install PyQt5-5.8.2-5.8.0-cp35.cp36.cp37-none-win_amd64.whl.whl
Windows专业版还可以直接使用编译好了的exe文件下载windows_v1.8.1.zip文件解压缩后即可使用:https://github.com/tzutalin/labelImg/releases
Windows版labelImg有个问题需要注意的是,zip文件不要解压到路径中有中文的目录中,否则labelImg.exe在双击启动后即闪退,遇到这种情况,把zip文件解压到路径不含中文的路径下,然后把labelImg在C:\users\<your username>\ (中文版的windows可能这个路径是C:\用户\<你的用户名>\ ) 下生成的.labelImgSettings.pkl这个文件,需要把这个文件先删掉,然后再运行lableImg.exe即可,当然labelImg.exe解压后没有运行过,就不用做这步。
有人使用的本子是安装的Windows家庭版,我开始没注意到这个差别,照样把windows_v1.8.1.zip解压到D:\下后双击运行labelImg.exe,但是出现解界面窗口后中间是黑屏,过一会儿即退出,到C:\用户\<用户名>\下去找.labelImgSettings.pkl这个文件也没看见,运行-黑屏-退出试了多次还是这样,不得其解,最后想到Windows版是不是有什么差异,一看操作系统版本,是Win10家庭版的,于是猜测家庭版时功能阉割版,可能这个exe文件运行不了,于是改换个安装办法:先分布安装Python3、PyQt5、lxml,然后到https://github.com/tzutalin/labelImg下载labelImg的源码labelImg-master.zip到本地解压开,然后进到labelImg-master目录下,执行:
pyrcc5 -o libs/resources.py resources.qrc
然后执行 python labelImg.py,可以看到窗口出来了,使用open dir按钮打开图片目录都正常,说明没问题了,然后到桌面上写个cmd文件:
d:
cd D:\labelImg-master
python labelImg.py
双击这个cmd文件即可启动labelImg,OK,不懂技术的同事也可以轻松使用了。
对于Mac本子,就有点费劲了,如果没安装brew,首先从AppStore安装x-code,接受license,中间会要求安装CommandLineTools,至少需要5G以上的空间,安装完后确认x-code版本:
ls -l /Applications/|grep Xcode
确认执行命令的目录:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
然后安装brew(如果不安装x-code和CommandLineTools直接安装brew,可能会报错xcode-select: error: invalid developer directory '/Library/Developer/CommandLineTools'):
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
如果没安装python,安装完brew后就安装python3:
brew install python
有的Mac本子上自带的python3.6文件不全也是阉割了的版本,所以按照官网的步骤安装到make qt5py3时总是报错收pyrcc5这个文件找不到:
brew install qt # Install qt-5.x.x by Homebrew
brew install libxml2
#or using pip
pip3 install pyqt5 lxml # Install qt and lxml by pip
#cd labelImg-master
make qt5py3
python3 labelImg.py
搜索了Mac的/usr目录下确实没有这个文件,一般来说应该在python下面的,猜测是Mac上自己安装的python是阉割了的,于是安装最新版python:
brew install python
结果装到最后在建立最新版的python的链接时说python已存在:
Warning: python 3.6.1 is already installed, it's just not linked.
You can use `brew link python` to link this version.
这个是肯定的,原有的python3.6没有卸载,于是强制执行链接: brew link --overwrite python,又报错:
Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks
一检查/usr/local/下面没有Frameworks这个目录,估计是没权限创建这个目录,但是Mac又不许用在执行brew install时使用sudo,所以只能手工创建解决:
sudo mkdir /usr/local/Frameworks
sudo chown $(whoami):admin /usr/local/Frameworks
然后再执行brew link --overwrite python,OK,提示链接创建了,接下来搜索一下pyrcc5也可以找到了,于是进到labelImg源码所在的labelImg-master目录下再执行 make qt5py3可以顺利完成了,然后执行python3 labelImg.py可以看到窗口出来了,labelImg可以运行了! 最后写一个start-labelImg.command文件(Mac默认.command文件发到终端执行)放到桌面上让不懂技术的同事方便使用,在里面写上
cd /Users/<username>/labelImg-master
python3 labelImg.py
然后在终端进入/Users/<username>/Desktop,执行chmod +x start-labelImg.command给文件授权,然后在桌面上双击这个文件即可以启动labelImg了,完工!所有参加标注的同事不懂技术的都可以用起来了。