doccano 标注工具 全网最全安装部署采坑
最近研究nlp相关的序列标注工具,找到了doccano这个神奇的工作,下面记录下在安装部署doccano的各种神奇问题
1.doccano的用途
- document classification 文本分类
- sequence labeling 序列标注,用于命名实体识别
- sequence to sequence seq2seq,用于翻译
- speech to text 语音转文本标注
2. doccano的安装方式
- 使用docker-compose部署
- 直接使用docker安装
- build from source 从源码编译
3. docker-compose安装doccano
环境说明: macOS 10.14
官网推荐安装方式
建议在安装前把docker的镜像地址修改为阿里云
- 首先获取源码
1 2 | $ git clone https://github.com/doccano/doccano.git $ cd doccano |
- 安装
1 | $ docker-compose -f docker-compose.prod.yml up |
- 访问
1 | 直接访问地址:http://127.0.0.1 |
从docker安装还是很顺滑的基本没有什么问题,但是但是但是,说3遍,安装完成后的界面是这样的:

很明显,这个不是最新的版的,官网的解决方法如下,我试了几遍,发现并没有效果,为了获得最新版本,最终还是采用了从源码的方式来安装部署doccano
- Execute
git pull to reflect the latest doccano.- Delete the volume that
doccano_node_modules ,doccano_static_volume ,doccano_venv anddoccano_www . Do not deletedoccano_postgres_data because it stores your projects data.- Rebuild the doccano image.
The following commands are the procedure for 2~3.
1
2
3
4
5
6
7
8
9 ? docker volume ls
DRIVER VOLUME NAME
local doccano_node_modules
local doccano_postgres_data
local doccano_static_volume
local doccano_venv
local doccano_www
? docker volume rm doccano_node_modules doccano_static_volume doccano_venv doccano_www
? docker-compose -f docker-compose.prod.yml build --no-cache
4. docker安装doccano
这个方式官网没介绍,不过用过docker的同学应该能想到直接去docker镜像网站上去看有没有相关的镜像发布
- 拉取镜像
1 | docker pull chakkiworks/doccano |
- 创建容器
1 2 3 4 5 | docker container create --name doccano \ -e "ADMIN_USERNAME=admin" \ -e "[email protected]" \ -e "ADMIN_PASSWORD=password" \ -p 8000:8000 chakkiworks/doccano |
- 启动容器
1 | docker container start doccano |
- 访问地址
1 | 直接访问地址:http://127.0.0.1:8000 |
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tIKCw6Td-1592452841829)(/Users/lihang/Library/Application Support/typora-user-images/image-20200618111205742.png)]](http://i2.wp.com/img-blog.csdnimg.cn/20200618134013671.png)
备注:停止容器
5. 源码安装doccano
环境说明:一台什么都没有的centos,从零开始安装
- centos7.5
- python3.6.1
- node14.4
5.1 安装python环境
- 下载
1 | wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz |
- 安装前安装依赖包
1 | yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel |
- 解压编译安装
1 2 3 | tar -zxvf Python-3.6.1.tgz ./configure prefix=/usr/local/python3 make && make install |
- 添加软连接
1 2 | ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3 |
- 使用virtualenv虚拟环境
1 2 3 4 5 | pip3 install virtualenv ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv virtualenv --python=/usr/bin/python3 annotation cd annotation&&cd bin source activate |
5.2 安装node环境
- 下载
1 | wget https://cdn.npm.taobao.org/dist/node/v14.4.0/node-v14.4.0-linux-x64.tar.xz |
- 解压
1 2 | tar -xvf node-v14.4.0-linux-x64.tar.xz mv node-v14.4.0-linux-x64 /usr/local/nodejs |
- 建立软连接
1 2 | ln -s /usr/local/nodejs/bin/npm /usr/local/bin/ ln -s /usr/local/nodejs/bin/node /usr/local/bin/ |
- 检验是否安装成功
1 | node -v |
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R8K5oYGS-1592452841832)(/Users/lihang/Library/Application Support/typora-user-images/image-20200618113205152.png)]](http://i2.wp.com/img-blog.csdnimg.cn/20200618134045347.png)
5.3 安装doccano
说明:
pip可以使用清华镜像源
npm可以使用阿里的镜像源
1 2 | pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple --default-timeout=1000 npm install --registry=https://registry.npm.taobao.org |
- 拉取代码
1 2 | # clone repository git clone https://github.com/doccano/doccano.git |
- python 相关包安装
1 2 3 4 5 6 7 | # Python settings cd doccano/app pip install -r requirements.txt python manage.py migrate python manage.py create_roles python manage.py createsuperuser python manage.py runserver |
- 前端相关包安装
1 2 3 4 5 | # Node settings cd ../frontend rm -f package-lock.json npm install npm run start |
这里碰到好些问题,由于是台空的centos,很多都依赖都没安装,建议在npm install之前安装下面的命令,每一条都是血和泪
1 2 3 4 | yum install mysql-devel gcc gcc-devel python-devel yum install postgresql-devel* yum install -y gcc-c++ yum install unixODBC-devel |
还有一个重点,如果碰到提示node-fibre这个库安装不上,请使用普通用户安装npm install
使用npm install还会出现类似这个问题:
1 2 3 | ERROR in ./.nuxt/client.js Module not found: Error: Can't resolve 'core-js/modules/es6.array.find' in '/src/frontend/.nuxt' [...] |
解决方法:
原因是3.x版本过高
当你看到这个界面的时候,是不是感觉终于大功告成了

然鹅,当你打开127.0.0.1:3000的时候,界面是这样的,并不是最新版的demo
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CCaiwDCw-1592452841848)(/Users/lihang/Library/Application Support/typora-user-images/image-20200618110330459.png)]](http://i2.wp.com/img-blog.csdnimg.cn/20200618134127235.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpaGFuZ3hpYW9qaQ==,size_16,color_FFFFFF,t_70)
通过查看源码,发现其实在app目录下还有一个static文件,里面是有前端资源的,直接访问127.0.0.1:8000,可正常登陆,也是最新的界面,但是点到project目录是空的,这说明需要去app的static目录下重新打包
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dWqFA2f0-1592452841852)(/Users/lihang/Library/Application Support/typora-user-images/image-20200618114455165.png)]](http://i2.wp.com/img-blog.csdnimg.cn/20200618134154664.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpaGFuZ3hpYW9qaQ==,size_16,color_FFFFFF,t_70)
- 重新安装依赖
1 2 | cd app/server/static npm install |
不出意外会提示:
1 2 | OSError at / Error reading /doccano/app/server/static/webpack-stats.json. Are you sure webpack has generated the file and the path is correct? |
解决方法:
1 2 | docker run -d --name doccano -p 80:8000 chakkiworks/doccano docker cp doccano:/doccano/app/server/static/webpack-stats.json . |
然后将拷贝出来的webpack-stats.json上传到服务器,npm install 就成功了
- 打包
1 | npm run build |
这里有可能会提示
1 2 3 4 5 6 | ERROR in ./components/stats.vue?vue&type=script&lang=js& (./node_modules/vue-loader/lib??vue-loader-options!./components/stats.vue?vue&type=script&lang=js&) Module not found: Error: Can't resolve 'vue-chartjs/es/BaseCharts/Doughnut' in '/Users/fatih/Desktop/Projects/AI/doccano/app/server/static/components' @ ./components/stats.vue?vue&type=script&lang=js& (./node_modules/vue-loader/lib??vue-loader-options!./components/stats.vue?vue&type=script&lang=js&) 36:0-58 76:11-19 @ ./components/stats.vue?vue&type=script&lang=js& @ ./components/stats.vue @ ./pages/stats.js |
类似这种错误,解决方法:
1 | npm install [email protected] |
然后重新执行
- 启动服务
1 | python manage.py runserver 0.0.0.0:8000 |
注意这里设置ip和端口,否则访问不了对应的网页
第四部分有点乱,大家将就着看吧