Python venv:项目环境与依赖管理
记录 Windows 与 Linux 的虚拟环境创建、依赖安装和自动化运行方法。
阅读设置
一个项目,一个虚拟环境
虚拟环境隔离 Python 包,减少项目之间的依赖冲突。它不隔离操作系统,也不会自动切换 Python 主版本。环境目录通常不提交到 Git,迁移时根据依赖文件重建。
Windows 操作流程
在项目根目录执行:
py -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install requests
python -m pip freeze > requirements.txt
python -m pip install -r requirements.txt
deactivate
pip freeze 保存当前环境中的已安装包版本,包括间接依赖;它不等同于跨平台锁文件。需要固定 Python 版本时,在创建环境前选择对应解释器。
激活脚本被拦截怎么办
最简单的做法是直接调用环境中的解释器:
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe main.py
如果确实需要激活,可根据机器策略使用 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser。这是当前用户的持久设置,组织策略可能禁止修改;仅运行项目并不要求改变策略。
Linux 与自动化任务
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
deactivate
计划任务无需先激活。使用解释器和脚本的绝对路径,并单独设置工作目录;解释器路径不会自动改变脚本读取相对文件时的基准目录。
C:\Projects\demo\.venv\Scripts\python.exe C:\Projects\demo\main.py
/opt/demo/.venv/bin/python /opt/demo/main.py
在 .gitignore 中加入 .venv/。删除虚拟环境前确认里面没有误放的源码或数据,再重建环境即可。