惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
aimingoo的专栏
aimingoo的专栏
Martin Fowler
Martin Fowler
C
Check Point Blog
G
Google Developers Blog
V
Visual Studio Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
有赞技术团队
有赞技术团队
MongoDB | Blog
MongoDB | Blog
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
D
Docker
Hugging Face - Blog
Hugging Face - Blog
The GitHub Blog
The GitHub Blog
博客园 - 三生石上(FineUI控件)
A
About on SuperTechFans
Recent Announcements
Recent Announcements
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
阮一峰的网络日志
阮一峰的网络日志
Stack Overflow Blog
Stack Overflow Blog
Vercel News
Vercel News

博客园 - 与f

微软的人机验证 docker运行hermes agent python使用docx库对在word中的表格合并操作 百度飞桨PaddleOCR-VL识别发票图片输出json格式 大模型微调后导出,部署服务然后后端调用 openclaw的一些聊天配置 docker 部署 openclaw llama.cpp编译 微信小程序显示ai返回的markdown或html C#多端桌面程序(可跨平台) 主流 MySQL 热备份方案 基于SRS(Simple Realtime Server)+ CDN边缘节点加速3个nginx做文件分发1个nginx做负载均衡 一份基于SRS(Simple Realtime Server)+ CDN边缘节点srs edge加速的万人级直播部署清单 HLS(HTTP Live Streaming)标准的视频及加密和解密播放 HLS(HTTP Live Streaming)标准的视频及加密 使用Dockerfile创建一个hyperf容器做为开发环境 docker的hyperf框架docker-compose一键安装 通过vm虚拟中的docker 环境做开发 ubuntu 安装后ssh 连接到服务器 lvm的概念和操作(linux) PHP Attributes 注解 centos 服务器查找一些字符串 Centos8网络配置小工具 Keepalive实现一个高可用负载均衡场景 Keepalived详解:原理、编译安装与高可用集群配置
Python 项目创建+依赖管理+版本控制
与f · 2026-04-24 · via 博客园 - 与f

给你一套最简单、最稳定、不踩坑的标准流程,直接跟着做就能用

一、创建项目(标准结构)

1. 新建项目文件夹

ocr_project/
├── app/
│   ├── __init__.py
│   ├── ocr_engine.py    # OCR核心类
│   └── utils.py         # 图像处理工具
├── models/              # 模型目录(可选)
├── images/              # 测试图片
├── requirements.txt      # 固定依赖 ✅
├── Dockerfile           # 你要的镜像
├── docker-compose.yml
├── .dockerignore
└── main.py              # 启动入口

二、创建虚拟环境(必须!)

Windows

python -m venv .venv
.venv\Scripts\activate

Linux/Mac

python3 -m venv .venv
source .venv/bin/activate

激活后,前面会出现 (.venv)

三、依赖管理(最重要!固定版本)

1. 创建 requirements.txt

# 核心框架
paddlepaddle==3.0.0
paddleocr==2.9.1

# 图像处理
opencv-python-headless==4.10.0.84
pymupdf==1.27.2
numpy==1.26.4
pillow==10.4.0

# 日志/工具
python-dotenv==1.0.1

2. 安装依赖

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

3. 导出当前环境所有依赖

pip freeze > requirements.txt

这样能保证:本地、服务器、Docker 环境完全一致!

四、项目入口文件:main.py

from src.ocr import run_ocr

if __name__ == "__main__":
    result = run_ocr("test.jpg")
    for text in result:
       (text)

app/ocr_engine.py(OCR 核心)

import os
import cv2
import numpy as np
from paddleocr import PaddleOCR

os.environ["PADDLE_PDX_DISABLE"] = "1"
os.environ["PADDLE_PDX_DISABLE_MODEL_SOURCE_CHECK"] = "1"

class OCREngine:
    def __init__(self):
        self.ocr = PaddleOCR(
            lang="ch",
            use_gpu=False,
            show_log=False,
            use_angle_cls=True,
            ocr_version="PP-OCRv4",
            det_limit_side_len=6000
        )

    def predict(self, img_path):
        img = cv2.imread(img_path)
        img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
        result = self.ocr.ocr(img, cls=True)
        texts = [line[1][0] for line in result[0]]
        return texts

五、如何创建虚拟环境(本地开发)

# 创建
python -m venv .venv

# 激活
# Windows
.venv\Scripts\activate
# Mac/Linux
source .venv/bin/activate

# 安装依赖
pip install -r requirements.txt

六、docker 开发

.dockerignore

__pycache__
*.pyc
images/*
models/*
*.md

Dockerfile

FROM paddlepaddle/paddle:3.0.0

WORKDIR /app

# 系统依赖
RUN sed -i 's|deb.debian.org|mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list && \
    sed -i 's|security.debian.org|mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list && \
    apt-get update && \
    apt-get install -y --no-install-recommends \
    libgl1-mesa-glx libglib2.0-0 libsm6 libxrender1 libxext6 && \
    rm -rf /var/lib/apt/lists/*

# 安装固定依赖
COPY requirements.txt .
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

# 拷贝代码
COPY . .

# 运行
CMD ["/bin/bash"]
#CMD ["python", "main.py"]
docker-compose.yml
version: '3.8'

services:
  paddle-ocr4:
    build: .
    container_name: paddle-ocr4
    volumes:
      - ./:/app  # 本地目录 ↔ 容器 /app 自动同步
    stdin_open: true
    tty: true
    working_dir: /app

七、Git 版本管理

1. 创建 .gitignore

.venv/
__pycache__/
*.pyc
*.pyo
*.pyd
*.log
*.jpg
*.png
*.pdf
models/
build/
dist/
*.egg-info/

2. 初始化 Git

git init
git add .
git commit -m "init: paddleocr project"

3. 查看版本

八、项目运行