如何基于.python-version自动安装Python并配置virtualenv?
2026-6-13
实现自动安装Python版本并配置虚拟环境的方案
#
pyenv原生的局限 #
pyenv本身没法直接处理你这种格式的
.python-version
文件,自动完成「安装指定Python版本+创建并激活虚拟环境」的全流程。原生的
.python-version
如果写虚拟环境名称,前提是这个环境已经存在、对应的Python版本也已经装好,pyenv只会帮你切换过去,不会自动补全安装或创建步骤。
最靠谱的方式:自定义脚本 #
直接写个简单的shell脚本就能搞定,不管是放在项目根目录,还是加到shell配置里(比如
.bashrc
/
.zshrc
)都可以。逻辑大概是这样:
-
读取
.python-version里的内容,拆分出Python版本和虚拟环境名 -
检查该版本是否已通过pyenv安装,没装就跑
pyenv install <版本号> -
检查虚拟环境是否存在,不存在就执行
pyenv virtualenv <版本号> <环境名> -
最后用
pyenv local <环境名>激活环境
给你个示例脚本(保存成
setup-env.sh
):
#!/bin/bash
# 读取文件内容
VERSION_ENV=$(cat .python-version)
# 拆分版本和环境名
PY_VERSION=$(echo "$VERSION_ENV" | cut -d'/' -f1)
ENV_NAME=$(echo "$VERSION_ENV" | cut -d'/' -f3)
# 检查Python版本是否已安装
if ! pyenv versions | grep -q "$PY_VERSION"; then
echo "正在安装Python $PY_VERSION..."
pyenv install "$PY_VERSION"
# 检查虚拟环境是否存在
if ! pyenv virtualenvs | grep -q "$ENV_NAME"; then
echo "正在创建虚拟环境 $ENV_NAME..."
pyenv virtualenv "$PY_VERSION" "$ENV_NAME"