在项目级别创建 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 社区最主流的项目管理方式之一。

相关推荐
xrandzj33 分钟前
Python面向对象编程入门:类、实例、初始化与封装实践
开发语言·python
matlabgoodboy3 小时前
计算机毕设代做|Java Python Matlab APP 全套开发设计
java·python·课程设计
用户8356290780513 小时前
Python Word 转 PDF 和 PDF 转 Word 指南
后端·python
用户8356290780514 小时前
如何使用 Python 加密和保护 Word 文档
后端·python
Fluxproxy4 小时前
AI数据集采集、批量模型推理报错频发?AI项目网络稳定性优化实战
python·ai·ai编程
Fanta丶4 小时前
10.Python class类的定义和魔术方法
python
小玮看世界6 小时前
[Python]从“脏”数据到优雅实现:一个IoT滑动窗口最大值问题的测试驱动优化实录
linux·前端·python
MC皮蛋侠客7 小时前
SQLAlchemy 系列(十一):从 1.x 到 2.x——渐进迁移与数据访问层治理
数据库·python
魔镜前的帅比7 小时前
(开源项目)x-claw (设计)
python·ai·rust·开源
风起洛阳@不良使7 小时前
springmvc中Model和ModelAndView
开发语言·python