解决 PaddleOCR 库冲突:PyCharm 虚拟环境搭建 + 完整 OCR 实战教程
在使用 PaddlePaddle 与 PaddleOCR 进行文字识别开发时库版本冲突是最常见的问题 —— 旧项目依赖、系统预装库很容易和 Paddle 系列工具包不兼容导致报错、无法运行甚至环境崩溃。这篇博客手把手教你新建独立虚拟环境→配置 PyCharm 解释器→安装无冲突依赖→图片 / 视频实时 OCR 代码实战彻底解决兼容问题快速跑通文字识别一、为什么必须用虚拟环境PaddleOCR 依赖 PaddlePaddle 深度学习框架对 numpy、opencv-python、pillow 等库的版本有严格要求而你本地已安装的库版本很可能不匹配直接安装会覆盖原有项目依赖导致旧项目无法运行出现ImportError、版本不匹配报错模型加载失败、识别功能异常解决方案为 PaddleOCR 单独创建虚拟环境隔离依赖互不干扰二、创建 OCR 专用虚拟环境并建立解释器1. 在d盘中新建一个文件夹作为ocr专用虚拟环境。2. 新建python虚拟解释器选择新创建的ocr地址。3.激活虚拟环境在ocr文件中的Scripts文件地址中输入聪明的打开命令指令符输入activite激活。4. 安装PaddlePaddle、PaddleOCRpip install paddlepaddle2.6.2 pip install paddleocr2.8.1三、实战一图片 OCR 识别from paddleocr import PaddleOCR #参数介绍 https://blog.csdn.net/qq_41273999/article/details/135868038?ops_request_misc%257B%2522request%255Fid%2522%253A%252299FC8A79-771C-4692-BE83-3F3E23AE64AB%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257Drequest_id99FC8A79-771C-4692-BE83-3F3E23AE64ABbiz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~all~top_click~default-1-135868038-null-null.142^v100^pc_search_result_base7utm_termpaddleocr%E5%8F%82%E6%95%B0spm1018.2226.3001.4187 ocr PaddleOCR(use_angle_clsTrue,Use_gpuFalse, show_logFalse, Langch) #ch 是识别中文 img_path rimg_3.png result ocr.ocr(img_path, clsTrue) print(result) for line in result[0]: print(line[1][0])from paddleocr import PaddleOCR import cv2 import numpy as np ocr PaddleOCR(use_angle_clsTrue, use_gpuFalse, show_logFalse, langen)#ch’就是识别中文 framecv2.imread(img.jpg) result ocr.ocr(frame, clsTrue) if not None in result: for line in result[0]: pts_int np.array(line[0],dtypenp.int32) pts pts_int.reshape((-1,1,2)) cv2.polylines(frame,[pts],isClosedTrue,color(147,20,255),thickness2) cv2.putText(frame,line[1][0],(pts_int[0]),cv2.FONT_HERSHEY_SIMPLEX,1,(0,0,255),3) cv2.imshow(x,frame) cv2.waitKey(0)四、实战二摄像头实时视频 OCR功能实时摄像头识别 中文显示 自动画框from paddleocr import PaddleOCR import cv2 import numpy as np from PIL import Image, ImageDraw, ImageFont # 解决OpenCV中文乱码 def cv2AddChineseText(img, text, position, textColor(0, 255, 0), textSize30): if isinstance(img, np.ndarray): img Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) draw ImageDraw.Draw(img) fontStyle ImageFont.truetype(simsun.ttc, textSize, encodingutf-8) draw.text(position, text, textColor, fontfontStyle) return cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR) # 初始化OCR ocr PaddleOCR(use_angle_clsTrue, use_gpuFalse, show_logFalse, langch) # 打开摄像头 cap cv2.VideoCapture(0) print( 实时OCR已启动按ESC退出 ) while True: ret, frame cap.read() if not ret: break # 识别 result ocr.ocr(frame, clsTrue) if result and result[0]: for line in result[0]: text line[1][0] pts_int np.array(line[0], dtypenp.int32) pts pts_int.reshape((-1, 1, 2)) x, y pts_int[0] # 画框 cv2.polylines(frame, [pts], isClosedTrue, color(147, 20, 255), thickness2) # 显示中文 frame cv2AddChineseText(frame, text, (x, y - 30)) # 显示画面 cv2.imshow(Real-Time OCR, frame) # ESC退出 if cv2.waitKey(1) 27: break cap.release() cv2.destroyAllWindows()使用说明直接运行摄像头自动打开实时识别文字并画框按 ESC 退出五、常见问题中文显示方框确保系统有simsun.ttc字体Windows 默认自带。模型下载失败可手动指定模型目录ocr PaddleOCR( use_angle_clsTrue, use_gpuFalse, show_logFalse, det_model_dirch_PP-OCRv3_det_infer, rec_model_dirch_PP-OCRv3_rec_infer, cls_model_dirch_ppocr_mobile_v2.0_cls_slim_infer, langch )六、总结通过独立虚拟环境 指定版本安装彻底解决 PaddleOCR 与原有库的兼容问题一行代码不用改就能实现图片文字识别、摄像头实时 OCR新手也能快速上手