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

相关推荐
懂点Tech5 小时前
ctfshow misc28:GIF 高度修改解题与脚本实现
开发语言·windows·python
comedate5 小时前
SMLib 的 Examples 导读:PyAPI / SM_API / SMLib 三组示例怎么读
python·cad·smlib·examples·sm_api
云和数据.ChenGuang6 小时前
Python 重写(Override)深度解析:从 MRO 到 super() 的完整机制
java·开发语言·人工智能·python·langchain·1024程序员节
川石课堂软件测试6 小时前
学习软件测试需掌握的一些知识
数据库·python·sql·功能测试·网络协议·mysql·http
万化冥合7 小时前
PyBox屏幕键盘如何辅助演示键盘操作?
python·计算机外设
车软学堂7 小时前
从测试转开发,到底要补什么
网络·人工智能·python·功能测试·单片机·车载系统·自动化
天空依然蔚蓝7 小时前
分享一个自动检测网站在线状态的python程序
python·运维开发·1024程序员节
岁月宁静7 小时前
一个 AI 项目从本地到上线,要经过哪些步骤?全流程讲清楚
python·docker·agent
codists8 小时前
《crafting interpreters》阅读笔记:p45-p45
python
曲径海盗9 小时前
【Python 学习第 41 天】for 循环
python·学习笔记·编程入门