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

推荐订阅源

N
News and Events Feed by Topic
V
V2EX
博客园 - 【当耐特】
Vercel News
Vercel News
雷峰网
雷峰网
爱范儿
爱范儿
WordPress大学
WordPress大学
云风的 BLOG
云风的 BLOG
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Microsoft Azure Blog
Microsoft Azure Blog
F
Full Disclosure
有赞技术团队
有赞技术团队
Hugging Face - Blog
Hugging Face - Blog
NISL@THU
NISL@THU
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Attack and Defense Labs
Attack and Defense Labs
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Microsoft Security Blog
Microsoft Security Blog
腾讯CDC
P
Proofpoint News Feed
B
Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
K
Kaspersky official blog
I
InfoQ
Google Online Security Blog
Google Online Security Blog
L
LINUX DO - 最新话题
Project Zero
Project Zero
Engineering at Meta
Engineering at Meta
V
Visual Studio Blog
AI
AI
Schneier on Security
Schneier on Security
B
Blog RSS Feed
T
Tor Project blog
H
Help Net Security
H
Hackread – Cybersecurity News, Data Breaches, AI and More
L
LINUX DO - 热门话题
阮一峰的网络日志
阮一峰的网络日志
S
Security @ Cisco Blogs
T
Threat Research - Cisco Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
C
Cyber Attacks, Cyber Crime and Cyber Security
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
V2EX - 技术
V2EX - 技术
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
A
Arctic Wolf
Webroot Blog
Webroot Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main

博客园 - 与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. 查看版本

八、项目运行