Python 项目最容易乱在环境:不同项目需要不同版本,不同依赖互相冲突,临时全局安装又很难回收。Flask 项目再加缓存时,更要先把环境和依赖边界整理好。
多版本 Python 为什么要隔离
常见问题:
- 老项目只能跑 Python 3.7。
- 新项目需要更高版本。
- 某些依赖有原生扩展。
- 全局 pip 安装后难以追踪。
- 测试环境和本机版本不一致。
所以 Python 项目不要依赖系统全局环境。
pyenv 管版本
pyenv 适合管理多个 Python 版本:
brew update
brew install pyenv
pyenv install 3.11.9
pyenv global 3.11.9
具体项目里更建议用局部版本:
pyenv local 3.11.9
这样进入项目目录时自动使用对应版本。
虚拟环境管依赖
旧记录里常见 pipenv:
pipenv --python 3.11
pipenv install pytest
pipenv shell
pipenv run pytest
现在个人项目也可以考虑 uv,但核心原则不变:依赖进项目环境,不进全局 Python。
镜像源只作为加速
依赖安装慢时,可以配置镜像源。但镜像源要注意:
- 是否同步及时。
- 是否支持当前包。
- 是否会影响 hash 校验。
- 是否写死在项目配置里。
如果项目要给别人复用,配置镜像源要留说明,不要让环境变成“只能在本机跑”。
Flask 缓存用在哪里
Flask 缓存适合:
- 低频变化的页面。
- 重计算结果。
- 外部接口响应。
- 查询结果摘要。
- 登录态无关的公开数据。
不适合直接缓存:
- 用户私密数据。
- 权限强相关响应。
- 高频写入数据。
- 未设置失效策略的业务状态。
Flask-Caching 基本思路
常见缓存层包括:
- SimpleCache:本地内存,适合开发和小工具。
- RedisCache:适合多进程和多实例。
- FileSystemCache:适合轻量持久化。
缓存设计要明确 key、TTL、失效时机和异常回退。缓存不是为了“永远不查数据库”,而是为了减少重复计算和重复查询。
实用结论
Python 环境整理的核心是版本和依赖隔离:pyenv 管解释器,虚拟环境管依赖,镜像源只做加速。Flask 缓存则要先判断数据是否适合缓存,再选后端和失效策略。环境稳了,缓存才不会变成新的排障来源。
正文完




