2026最新保姆级教程:Windows 下使用 uv 从零配置 Python (OpenCV) 环境指南

Windows 下使用 uv 从零配置 Python (OpenCV) 环境指南

本文档适用于在一台全新的 Windows 电脑上,使用 uv 快速配置vscode + Python 3.10 开发环境,并安装 OpenCV 库。同时包含关于 uv 的进阶说明。

B站配套视频 2026最新:使用uv管理python&opencv

🟢 第一步:安装 uv 包管理器

既然电脑上什么都没有,我们需要先安装这个核心工具。

  1. 按下 Win + R 键,输入 powershell,按回车打开终端。
  2. 复制并粘贴以下命令,按回车运行(三选一):
    • 或者进如 uv 下载链接 找到 uv-x86_64-pc-windows-msvc.zip 下载解压后,将包含 uv.exe 的文件夹路径(例如 D:\tools\uv)添加到系统环境变量的 Path 中。
  3. 安装完成后,关闭并重新打开 PowerShell 窗口。

配置国内镜像源
由于官方源服务器在国外,为了解决下载速度慢、连接超时的问题,建议配置 uv 使用国内镜像源(清华源)。请直接复制下方所有代码,在 PowerShell 终端中一次性粘贴并回车运行:

# 1. 创建配置目录(如果不存在)New-Item-Path "$env:APPDATA\uv"-ItemType Directory -Force # 2. 写入配置内容到 uv.toml (使用清华源)$content = @" [[index]] url = "https://pypi.tuna.tsinghua.edu.cn/simple" default = true "@ Set-Content-Path "$env:APPDATA\uv\uv.toml"-Value $content

运行完成后,您的 uv 全局下载配置即已更新为清华源。

验证安装:

uv --version 

(如果看到版本号,说明安装成功)

如果你电脑上已经安装了 Python,也可以直接通过镜像站下载:

pip install uv -i https://pypi.tuna.tsinghua.edu.cn/simple 

如果有魔法:

irm https://astral.sh/uv/install.ps1 |iex

🟡 第二步:创建项目并初始化

我们不使用全局环境,而是为每个项目创建一个独立环境(这是最佳实践)。

  1. 在电脑上新建一个文件夹(例如 my-opencv-project)。
  2. 打开 VS Code
  3. 点击菜单栏 File (文件) -> Open Folder (打开文件夹),选择刚才新建的文件夹。
  4. 使用快捷键 Ctrl + ~ (Esc 下面那个波浪号键) 打开 VS Code 内置终端。
  5. 在终端依次输入以下命令:

指定 Python 版本为 3.10

uv python pin 3.10 

(uv 会自动为你下载并管理 Python 3.10,无需你去官网下载)

修改.toml文件

[project] name = "vision-winer-camp" version = "0.1.0" description = "Add your description here" requires-python = ">=3.10" dependencies = [ "opencv-python>=4.12.0.88", ] 

初始化项目

uv init 

🔵 第三步:安装 OpenCV

继续在终端中输入

uv add opencv-python 

(uv 会自动创建虚拟环境 .venv 文件夹,并将 OpenCV 及其依赖(如 NumPy)安装进去)


🟣 第四步:进阶理解 (配置文件与同步)

在使用 uv 时,理解以下两个概念非常重要。

1. 核心配置文件:pyproject.toml

当你执行 uv inituv add 后,根目录下会自动生成一个 pyproject.toml 文件。这就是你的“项目说明书”。

示例文件内容如下:

[project] name = "my-opencv-project" version = "0.1.0" description = "Add your description here" readme = "README.md" requires-python = ">=3.10" dependencies = [ "opencv-python>=4.10.0.84", ] 
作用:这个文件告诉 uv,你的项目叫什么,需要什么 Python 版本,以及依赖哪些库。如果你把代码发给同学,他们只需要有这个文件,就能还原出和你一模一样的环境。

2. 环境同步命令:uv sync

uv sync 是 uv 中最强大的命令之一,它的作用是 “让你的虚拟环境 (.venv) 与 锁定文件 (uv.lock) 保持绝对一致”

什么时候使用 uv sync

场景二:手动修改了配置文件
如果你手动打开 pyproject.toml,在 dependencies 里加了一行 "requests",保存后环境里并不会自动有这个包。
此时,运行:

uv sync 

uv 会检测到变化,并把 requests 安装进去。

场景一:刚下载别人的代码
你从 GitHub 上克隆了一个项目,或者同学发给你一个压缩包。你电脑上还没有 .venv 文件夹。
此时,只需运行:

uv sync 

uv 会自动读取配置文件,下载 Python,安装所有依赖,一键配好环境。


🔴 第五步:配置 VS Code 识别环境

虽然环境装好了,但 VS Code 可能还不知道。

  1. 检查右下角
    打开项目里的 mian.py 文件,看 VS Code 右下角是否显示 3.10.x ('.venv': venv)
  2. 手动选择 (如果没显示)
    • Ctrl + Shift + P 打开命令面板。
    • 输入并选择 Python: Select Interpreter
    • 在列表中选择带有 ('.venv')Recommended 字样的选项。

⚫ 第六步:编写代码测试

修改项目中的 main.py 文件,内容如下:

import cv2 import sys import numpy as np defmain():print("-"*30)print(f"Python 版本: {sys.version.split()[0]}")print(f"OpenCV 版本: {cv2.__version__}")# 测试 NumPy (OpenCV 通常会自动安装它)try:# 创建一个 100x100 的黑色图像 img = np.zeros((100,100,3), dtype=np.uint8)print("✅ NumPy 配合正常,虚拟图像创建成功。")except Exception as e:print(f"❌ 出错: {e}")print("-"*30)if __name__ =="__main__": main()

运行代码

在终端输入:

uv run main.py 

预期结果

------------------------------ Python 版本: 3.10.x OpenCV 版本: 4.x.x ✅ NumPy 配合正常,虚拟图像创建成功。 ------------------------------ 

By: Balrog-v

Read more

【C++】 map/multimap底层原理与逻辑详解

【C++】 map/multimap底层原理与逻辑详解

【C++】 map/multimap底层原理与逻辑详解 * 摘要 * 目录 * 一、`map` * 1. 类模板认识 * 2. 构造函数认识 * 3. 迭代器和范围for的使用 * 4. insert的使用 * 5. empty 和size的使用 * 6. erase的使用 * 7. swap 和 clear的使用 * 8. find的使用 * 9. count的使用 * 11. lower_bound 和 upper_bound的使用 * 12. equal_range的使用 * 13. operator= 的使用 * 14. operator[ ] 的使用 * 二、`multimap` * 1. 模板和类模板的认识 * 2. insert的使用 * 3.

By Ne0inhk
GESP 2025年9月 3级 C++ 真题解析

GESP 2025年9月 3级 C++ 真题解析

笔者前面解析了GESP 2025年9月一级和二级的真题,现在来解析一下三级的题目。总的感受是:很多考到了与编译器有关的知识,判断题个个感觉都模棱两可。笔者禁不住想问:这真的是小学生能理解的吗? 首先来看单选题。 这道题考察的是变量的作用域,但同时需要知道编译器的有关知识。C++遵守按需定义的原则,即直到需要某个变量了,才去定义它,这就导致C++中的变量定义不全部在语句块的开始位置,编译器也不会移动变量定义的位置。也就是说,这段代码中第4行定义的sum,编译时不会被移到第3行前面。那么第3行访问的 sum就只能是第1行定义的sum。这是其一。 其二,编译器会进行优化。这段代码中,第4行定义的sum没有任何用处,所以优化时(例如使用 -O2 标志),第4行被直接删除了。 这道了这两点,答案就水落石出了,为B。 第7道和第8道笔者已经在另外一篇文章中解析过了,这里跳过。 这道题考察的也是变量的作用域问题。全局变量是否在整个程序中都有效呢?笔者在4级中专门讲到一点:全局变量的局部化。当对全局变量使用了static关键字后,这个全局变量的作用范围就只在当前的文件中了,就不会在整个文件

By Ne0inhk
【C++】详解vector二维数组的全部操作(超细图例解析!!!)

【C++】详解vector二维数组的全部操作(超细图例解析!!!)

目录 一、前言 二、 深度理解vector 的二维数组(重点!)  三、vector 二维数组的空间理解(重点!) ✨问题分析 ✨如何合理定制vector的内存空间  四、vector 二维数组的初始化 五、vector 二维数组的 添加与删除 ✨添加一行 ✨添加一列 ✨删除一行 ✨删除一列 六、常考面试题  七、共勉 一、前言     最近在刷 Leetcode 的时候,发现 vector 的二维数组操作 都还没弄明白吗,但是STL的强大是众所周知滴,早晚都是要解决滴,因此专门写下这篇文章,以供自己复习和各位老铁使用,快速的回忆vector的用法,让你找回自信,不用再竞赛的时候颜面尽失。     vector 的一维操作可以看看之前这篇文章哦:vector 详解 二、 深度理解vector

By Ne0inhk