最近在学习pycorrector这个库。但是在环境搭建时遇到了问题,其中使用的kenlm需要在linux环境下编译安装,如果是windows则需要安装windows的编译环境。不想折腾vs那套的情况下,尝试使用wsl2+docker方式搭建学习环境。

首先使用ubuntu:24.04作为基础镜像,安装python以及gcc搭建基础环境,然后再安装pycorrector以及依赖包。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# 拉取镜像
docker pull ubuntu:24.04

# 启动容器
docker run -d --name dev --net=host -v ./:/workspace -w /workspace ubuntu:24.04 sleep infinity

# 启动完成后进入容器(略)

# 在容器中安装开发工具
apt update && apt install -y build-essential gdb valgrind cmake git vim

# 在容器中安装miniconda(略)

# 将当前容器提交为镜像,方便后面使用
docker commit dev dev:v1-cpp-python

# 基于新的镜像重新启动一个容器,然后安装需要的依赖包

完成上述步骤后,可以在容器中执行python脚本,但是当需要调试代码时只能print大法,还是不太方便,此时尝试通过vscode的远程开发能力实现代码的可视化调试。从网上的教程看,需要安装docker desktop才能实现,但是我并不想安装,觉得太重了。于是继续尝试。

首先使用Remote Development的WSL连接到wsl2环境,然后按下ctrl+shift+p呼出命令菜单,选择附加到运行中的容器(如下图)。

此时由于docker命令需要root权限,所以会执行失败,需要设置docker不需要root权限就能运行。执行以下两行代码搞定。

1
2
sudo groupadd docker
sudo usermod -aG docker $USER