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

相关推荐
benchmark_cc1 小时前
如何用 Python + QuantDash 快速构建高胜率“配对交易(Pairs Trading)”策略?
开发语言·人工智能·python·pandas·量化交易·quantdash
Python+992 小时前
Java 枚举类(Enum)详解:从基础到高级应用
java·开发语言·python
dunge20263 小时前
2026年7月最新ChatGPT Plus / Pro 与 Codex:当 AI Agent 最新5.6版本来袭,必须理解事务、幂等与补偿
开发语言·人工智能·python
小白学大数据5 小时前
两周完成爬虫技术栈升级:Scrapy 迁移 Crawlo 的路径与取舍
爬虫·python·scrapy
用户8356290780515 小时前
使用 Python 在 Excel 中添加和自定义文本框
后端·python
总裁余(余登武)5 小时前
python多个py文件打包【解决exe不能移动运行bug】
python
kisloy6 小时前
【python零基础教程第24讲】代码规范与质量管控
开发语言·python
xywww1686 小时前
AWS 账号权限怎么分:根用户和 IAM 用户区别及日常使用建议
大数据·开发语言·人工智能·python·gpt·云计算·aws
许彰午8 小时前
100_Python面试常见问题汇总
java·python·面试
皓悦编程记8 小时前
【YOLO26 系列】基于YOLO26的垃圾分类检测系统【python源码+Pyqt5界面/WEB+数据集+训练代码】
python·qt·分类