PyCharm 下 Label Studio 的部署安装启动简略教程指南

您所在的位置:网站首页 pycharm虚拟环境 PyCharm 下 Label Studio 的部署安装启动简略教程指南

PyCharm 下 Label Studio 的部署安装启动简略教程指南

2023-05-21 17:17| 来源: 网络整理| 查看: 265

目录 简介源码地址什么是 Label Studio所用语言 安装、启动与使用免责声明Clone 代码到 PyCharm设置 Python 解释器项目支持的 Python 版本在 PyCharm 中设置 Python 虚拟环境 安装依赖的 packages命令行安装PyCharm 下安装设置 requirements file安装 packages 启动项目启动问题解决问题 踩坑静态文件访问问题 使用 Label Studio

简介 源码地址

Label Studio 源码托管于 GitHub,地址为 https://github.com/heartexlabs/label-studio。

什么是 Label Studio

Label Studio 是一个开源的数据标注工具,并且使用了 Apache 2.0 LICENSE,没有商业化和闭源的限制(遵守协议的情况下)。

所用语言

后端是用纯 Python 编写的,由 Django 提供支持。

前端部分是一个与后端无关的 React + MST 应用程序,包括在一个预编译脚本中。

安装、启动与使用

Label Studio 在 GitHub 官方项目中提供了多种使用方式,包括 docker、本地等,想要直接使用而不修改的话,十分方便。

但是如果想针对 Label Studio 进行某些定制化开发的话,可能就需要了解一些它在本地启动的方式了。此处使用 Windows 平台下的 PyCharm 作为例子,简略讲述 Label Studio 怎么在 PyCharm 下启动起来并且能自定义一些参数。

免责声明

本人在此之前没有使用 Python 开发过 Django,也未曾有过任何开发 Python web 的经历。文中所讲述的方案、内容可能不一定完全正确。

该教程仅用于记录安装 Label Studio 方面的步骤,对过程中出现的问题不负任何责任。

相关改进请在评论区提出,会虚心接受改进。文章地址:https://blog.csdn.net/qq_36670734/article/details/122510886

Clone 代码到 PyCharm

到本地文件夹中执行命令:

git clone https://github.com/heartexlabs/label-studio.git

或者利用 PyCharm 中的 git clone 来下载代码 PyCharm工具栏Clone PyCharm选择路径Clone

设置 Python 解释器 项目支持的 Python 版本

Label Studio 支持的 Python 版本是 大于等于 3.6 小于等于 3.9,见 GitHub install-locally-with-pip。与时俱进的是,就在此篇文章编写的时候(2022-01-15),Label Studio 将原本小于 3.9 的限制改为了小于等于,修改时间是 2022-01-15 04:27。

因此此处需要插一句了,在项目的 Dockerfile 文件中,有如下的依赖,如图: DockerFIle截图 可以看到第 15 行还是 python3.8。预计将来某个时候将会改成 python3.9。

在 PyCharm 中设置 Python 虚拟环境

设置虚拟环境的原因是:由于个人喜好,不愿意在 Python 的全局环境中安装各种 packages,避免可能存在的依赖问题,所以此处新建了虚拟环境。

打开 PyCharm 中的 Python 解释器设置(File - Setting - Project: label-studio - Python Interpreter),新建点击右边齿轮符号选择 add 打开新建环境的界面。选择本地安装的 Python 解释器的位置即可,如图: Python解释器环境新建 做完此步骤之后,就会在工程的 venv 文件夹路径下新建了这个工程的环境。当然,可以在上图的 Location 里面指定环境的其他位置。

安装依赖的 packages 命令行安装

安装 GitHub 给的教程,地址:GitHub install-for-local-development,文字如下:

# Install all package dependencies pip install -e .

只要去工程路径下执行 pip install -e . 命令即可。

PyCharm 下安装

作为使用 PyCharm 的我,非轻易不会打开控制台命令行进行操作。一般来说,很多项目都会有 requirements.txt 的文件。Label Studio 的这个文件在 deploy 文件夹下面。

设置 requirements file

打开设置(Setting - Tools - Python Intergated Tools),在 Packaging - Package requirements file 中选择 requirements.txt 的路径即可。

安装 packages

打开 requirements.txt 文件,PyCharm 可能会在文件上方提示需要 Install requirements,安装提示安装即可。或者没有出来提示的,打开 .py 文件,也会有相关提示出现,如图: Install requirements 提示 若再没有出现,使用命令行安装即可。

启动项目

按照官方给的教程,运行下面两行命令即可启动项目,如下:

# Run database migrations python label_studio/manage.py migrate # Start the server in development mode at http://localhost:8080 python label_studio/manage.py runserver

第一行是第一次运行的时候初始化项目所需的 SQLite 数据库;第二行是运行项目。

启动问题

我这边先执行了官网的教程的命令,首先数据库位置放在了我不想要的地方,其次数据库也启动失败了。

首先讲述数据库的位置。使用默认参数启动的项目,数据库、其他文件的路径都是在用户目录下的,比如 Windows 下一般就是 C:\Users\{user-name}\AppData\Local\label-studio\label-studio。这个对于我来说不是很喜欢。

如果本地环境是 Python 3.7 的话,在启动的时候,会报错 SQLite does not support JSONFields. 错误,如下:

ERRORS: data_export.Export: (fields.E180) SQLite does not support JSONFields. data_manager.Filter: (fields.E180) SQLite does not support JSONFields. data_manager.View: (fields.E180) SQLite does not support JSONFields. data_manager.View: (fields.E180) SQLite does not support JSONFields. data_manager.View: (fields.E180) SQLite does not support JSONFields. projects.Project: (fields.E180) SQLite does not support JSONFields. projects.Project: (fields.E180) SQLite does not support JSONFields. projects.ProjectSummary: (fields.E180) SQLite does not support JSONFields. projects.ProjectSummary: (fields.E180) SQLite does not support JSONFields. projects.ProjectSummary: (fields.E180) SQLite does not support JSONFields. projects.ProjectSummary: (fields.E180) SQLite does not support JSONFields. tasks.Annotation: (fields.E180) SQLite does not support JSONFields. tasks.Annotation: (fields.E180) SQLite does not support JSONFields. tasks.AnnotationDraft: (fields.E180) SQLite does not support JSONFields. tasks.Prediction: (fields.E180) SQLite does not support JSONFields. tasks.Prediction: (fields.E180) SQLite does not support JSONFields. tasks.Task: (fields.E180) SQLite does not support JSONFields. tasks.Task: (fields.E180) SQLite does not support JSONFields. webhooks.Webhook: (fields.E180) SQLite does not support JSONFields.

或者可能会提示

You are on Windows Python 3.7. This Python version uses SQLite 3.31.1 which does not support JSON Field. Read more about this issue: https://code.djangoproject.com/wiki/JSON1Extension [Windows section]

说明 SQLite 版本不匹配。

解决问题

首先解决 SQLite 问题。

去官网 SQLite Download Page 下载 SQLite 包。Windows 系统下载 Precompiled Binaries for Windows 解压到 Python 目录下,替换 sqlite3.dll 文件即可。

其次解决默认数据库位置(默认多媒体文件位置)。这个不应该算是问题。官方的启动方式是 python label_studio/manage.py migrate 和 python label_studio/manage.py runserver,这也是 Django 的正常启动方式。但是这种方式不能自定义各种参数,比如日志等级、多媒体文件路径、是否开启 debug 等。

经过源码的阅读,发现 server.py 文件有着和 manage.py 异曲同工的作用。由于该文件代码行数较多,就简单分析一下。

首先 main() 函数里面解析了命令行参数,然后把参数加入到环境变量中。接下来执行数据库的初始化操作,它内部调用了 call_command('migrate', '--no-color', verbosity=0) 语句,也就是执行了 python label_studio/manage.py migrate 操作。最后根据环境变量来是否启动项目,默认启动。

所以执行 server.py 即可启动项目。

我这里加入了如下的启动参数

–data-dir …/mydata/ --log-level WARNING -b -d

如图: 启动参数 参数解释: --data-dir ../mydata/:设置多媒体路径为 ../mydata/。 --log-level WARNING:日志等级设置为 warn。 -b:不自动打开浏览器。 -d:开启 debug 模式。 其他参数请阅读 argparser.py 文件和 server.py 源码。

踩坑 静态文件访问问题

由于没有使用过 Django,所以当如上设置之后,发现静态文件无法加载。经过比对 server.py 和 manage.py 发现, manage.py 文件比 server.py 多了一行如下代码:

os.environ.setdefault('DEBUG', 'True')

也就是说,默认启动即开启了 debug 模式。

经过恶补了 Django 皮毛知识之后才知道,开启 debug 模式后,静态文件会走路由默认从项目路径找,否则会走普通的方式直接通过 ip:port/xxx 寻找静态文件。

关闭 debug 模式,可以使静态文件更好地结合 CDN,减少服务器的压力。

而上述启动命令行参数中已经指定了 -d 表示启动 debug 模式了,所以问题就出在,它没有把 debug 加入到环境变量中,也就是少了这行代码。

所以可以修改 server.py 文件,在 main 中加入如下代码:

os.environ.setdefault('DEBUG', 'True')

变成下述代码:

if __name__ == "__main__": os.environ.setdefault('DEBUG', 'True') sys.exit(main())

如图: 启动main加入debug 但是这种方式太暴力,写死了相关配置。

我这里采用了可配置的修改,加入了如下代码:

if input_args.debug: os.environ.setdefault('DEBUG', 'True')

修改的位置在 main() 方法内部,如图: debug变量 这样子就能做到在命令行参数中指定 -d 开启 debug 模式了。

使用 Label Studio

终于,在启动了项目之后,可以使用项目了。

默认启动的端口是 8080,所以在本地打开 http://localhost:8080 即可访问 Label Studio。

启动界面如下: label studio第一次启动界面 首次使用需要注册,而后即可正常使用 项目页面 具体 Label Studio 的用法,请参照其他文档。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3