在项目级别创建 Python 虚拟环境

在项目级别创建 Python 虚拟环境是目前最推荐的做法

例如你的项目:

text 复制代码
video_subtitle_project/
├── src/
├── data/
└── venv/

其中 venv/ 就是该项目专属的虚拟环境。


为什么推荐项目级虚拟环境?

1. 依赖隔离

项目 A:

text 复制代码
Python 3.10
openai==1.30.0
whisper==2025.1

项目 B:

text 复制代码
Python 3.12
openai==2.0.0
torch==2.8

如果都安装到全局环境,很容易出现:

text 复制代码
依赖冲突
版本覆盖
运行报错

项目级虚拟环境不会互相影响。


2. 便于迁移

导出依赖:

bash 复制代码
pip freeze > requirements.txt

别人拿到项目后:

bash 复制代码
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

即可恢复环境。


3. VS Code 自动识别

如果目录结构是:

text 复制代码
video_subtitle_project/
├── .venv/
├── src/
└── requirements.txt

或者:

text 复制代码
video_subtitle_project/
├── venv/
├── src/
└── requirements.txt

VS Code 的 Python 扩展通常会自动发现并提示使用该环境。

很多团队甚至统一使用 .venv 这个名称。


推荐目录结构

text 复制代码
video_subtitle_project/
│
├── .venv/
│
├── src/
├── data/
├── tests/
│
├── requirements.txt
├── README.md
└── .gitignore

创建方式

进入项目根目录:

bash 复制代码
cd video_subtitle_project

创建环境:

bash 复制代码
python3 -m venv .venv

激活:

Mac/Linux:

bash 复制代码
source .venv/bin/activate

Windows:

cmd 复制代码
.venv\Scripts\activate

Git 提交时不要上传虚拟环境

.gitignore 中添加:

gitignore 复制代码
.venv/
venv/
__pycache__/
*.pyc

否则一个几十 MB 的项目可能变成几 GB。


项目级 venv 和 Conda 环境怎么选?

对于你现在做的:

  • 字幕处理
  • OpenAI API
  • SiliconFlow API
  • SRT 翻译
  • 普通 Python 开发

推荐:

text 复制代码
项目级 venv

例如:

bash 复制代码
python -m venv .venv

简单、轻量、兼容性好。

如果涉及:

  • PyTorch
  • CUDA
  • Whisper 大模型本地推理
  • 深度学习训练

则更推荐:

Anaconda 或 Miniconda 的 Conda 环境,例如:

bash 复制代码
conda create -n pytorch_env python=3.11
conda activate pytorch_env

对于你当前的"视频字幕处理项目",我建议:

text 复制代码
video_subtitle_project/
├── .venv/
├── input/
├── output/
├── src/
│   ├── transcribe.py
│   ├── translate.py
│   └── merge.py
└── requirements.txt

然后在 VS Code 中选择 .venv/bin/python 作为解释器即可。这是目前 Python 社区最主流的项目管理方式之一。

相关推荐
Ztopcloud极拓云视角1 小时前
微软Build 2026自研MAI模型全接入指南:用Python搭一个多模型路由网关
python·microsoft·flask
香辣西红柿炒蛋1 小时前
pytest框架介绍
python·pytest
风之所往_1 小时前
Python 3.5 新特性全面总结
python
野生的小狗熊1 小时前
【自学Agent开发之路】第二篇—从.NET到Python:Agent开发的本质就是投喂上下文
python
牵牛花主人2 小时前
【无标题】
python·pandas
abcy0712132 小时前
sqlalchemy 原生sql判断条件是否为空,为空则跳过
开发语言·python
知识分享小能手2 小时前
数据预处理入门学习教程,从入门到精通, 实战演练——数据分析师岗位分析知识点详解(8)
python·学习·信息可视化
Wonderful U2 小时前
Python+Django实战:打造智能生鲜果蔬进销存管理系统(采购入库、库存预警、销售开单、毛利统计)
数据库·python·django
yuhuofei20212 小时前
【Python入门】Python中的集合set
python