C4的樱花庄 - 环境问题
type: channel
link: https://0x.c4a1.net/index.php/category/%E7%8E%AF%E5%A2%83%E9%97%AE%E9%A2%98/
items: PaddleOCR训练时报错"ModuleNotFoundError: No module named 'ppocr'"
items: 解决ImportError: libGL.so.1: cannot open shared object file: No such file or directory
items: PyDenseCRF安装时报错PyThreadState has no member named xxx
items: PaddlePaddle-GPU、PPOCR容器内环境配置及注意事项

PaddleOCR训练时报错"ModuleNotFoundError: No module named 'ppocr'"
type: item
date: 2022-01-26T19:00:00+08:00
description: 错误截图解决方法从报错中可以看到no module named 'ppocr' 意思就是找不到ppocr这个模块 那好办，缺什么补什么嘛找一个空闲的文件夹，在里面下载paddleocr的仓库(此处我下载的是2.2版本，请根据你的实际情况替换版本)wget https://github.com.cnpmjs.org/PaddlePaddle/PaddleOCR/archive/refs/heads/release/2.2.zip --no-check-certificate && unzip 2.2.zip解压后会得到一个文件夹，进去把这里面的'ppocr'文件夹复制到python环境下的site-packages文件夹内即可。 如果是百度AIStudio用户的话，建议复制到~/external-libraries/，这个文件夹做了持久化，环境关闭不会被清空。

解决ImportError: libGL.so.1: cannot open shared object file: No such file or directory
type: item
date: 2022-01-20T11:31:00+08:00
description: 方法：apt install libgl1-mesa-glx

PyDenseCRF安装时报错PyThreadState has no member named xxx
type: item
date: 2022-01-17T23:55:00+08:00
description: 简而言之：不要相信PyPi上的版本是能用的。解决方法直接用pip install git+https://github.com/lucasb-eyer/pydensecrf.git即可解决。 这个错误也有可能是因为没有安装Cython，使用下列命令即可安装：pip install cythonQ.E.DC4a15Wh_5.12022-01-17 23:50:02

PaddlePaddle-GPU、PPOCR容器内环境配置及注意事项
type: item
date: 2021-07-15T20:43:00+08:00
description: 本篇文章默认您已经按照《GPU Docker 环境的配置与 Docker 相关注意事项》中所述的内容在宿主机上部署好环境。话不多说，进入正题。正文容器镜像选择笔者选择包版本较为落后但稳定可靠的CentOS 7镜像，您可以根据自己的需求自主选择镜像，但强烈建议您直接选择带cudnn环境的镜像以避免去nvidia官网下载cudnn（需要登录/注册）。注意：本文接下来的内容均针对CentOS镜像。拉取镜像并创建一个容器：docker pull nvidia/cuda:11.2.0-cudnn8-runtime-centos7 docker run -itd --name pptest --gpus all nvidia/cuda:11.2.0-cudnn8-runtime-centos7在上述命令执行完毕后查看容器是否正常运行：docker ps下文操作均在容器内进行，先切换到容器：docker exec -it pptest /bin/bash安装基础环境老规矩，先装EPEL：yum install epel-release -y yum clean && yum makecache && yum update然后就可以开始装基础环境了：Tips: 由于CentOS 7官方源包版本老旧，如果您的程序要求python >= 3.7，请自行编译安装。yum install -y gcc gcc-c++ zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel python3 python3-devel xz-devel libffi-devel make mesa-libGL.x86_64 lmdb lmdb-devel libpcap-devel wget patch然后通过cmake官方提供的脚本安装cmake（CentOS 7官方源最高只有cmake 2.x，然而下文中opencv-python的安装需要cmake >= 3.9进行编译，故采用脚本安装）：cd /usr/local mkdir cmake-3.21 cd cmake-3.21 wget https://github.com/Kitware/CMake/releases/download/v3.21.0-rc2/cmake-3.21.0-rc2-linux-x86_64.sh -O cmake.sh chmod +X cmake.sh bash cmake.sh ln -s /usr/local/cmake-3.21/bin/cmake /usr/bin/cmake至此基础环境部署完毕。安装PaddlePaddle-GPU与PaddleOCR及依赖环境奇奇怪怪的依赖关系：先装一下py的cmake：python3 -m pip install cmake -i https://pypi.tuna.tsinghua.edu.cn/simple 之后安装skbuild(OpenCV编译需要)：python3 -m pip install scikit-build关于PaddlePaddle-GPU版本的选择，您可以根据飞桨官方文档的建议安装：笔者的环境是Cuda11.2，您可根据自身情况选择合适的版本：python3 -m pip install paddlepaddle-gpu==2.1.1.post112 -f https://paddlepaddle.org.cn/whl/mkl/stable.html最后装上PaddleOCR：python3 -m pip install paddleocr至此，全部环境安装完成，您可通过Python调用PaddleOCR进行文字识别。注意事项必要的CUDNN环境如果您选择的镜像并未内置CUDNN，请根据镜像的CUDA版本选择相应的CUDNN Lib进行安装。PaddlePaddle和PaddlePaddle-GPU笔者非常不建议您同时安装PaddlePaddle和PaddlePaddle-GPU，因为这可能导致一些奇奇怪怪的问题：选择对应的PaddlePaddle-GPU版本如果安装了不和Cuda版本对应的PaddlePaddle-GPU版本会导致一系列异常，故笔者建议您仔细阅读飞桨官方文档并安装正确的PaddlePaddle版本。结语总的来说是成功的，最后感谢GT和团子大佬能听我在群里自言自语o(￣▽￣)ブ