Autoenv 是一个方便的工具,可以在进入目录时自动加载预先设置的环境变量和命令,特别适合用于自动激活 Python 虚拟环境。
# 使用 pip 安装
pip install autoenv
# 或者使用 Homebrew (macOS)
brew install autoenv
将以下内容添加到你的 ~/.bashrc
或 ~/.zshrc
文件中:
echo "source `which activate.sh`" >> ~/.bashrc # 或 ~/.zshrc
然后重新加载 shell 配置:
source ~/.bashrc # 或 source ~/.zshrc
.env
文件:cd /path/to/your/project
touch .env
.env
文件,添加以下内容:# 自动激活虚拟环境
source /path/to/your/virtualenv/bin/activate
# 可选:设置项目特定的环境变量
export PROJECT_ENV=development
首次进入带有 .env
文件的目录时,Autoenv 会询问是否信任该文件:
autoenv:
autoenv: WARNING:
autoenv: This is the first time you are about to source /path/to/your/project/.env:
autoenv:
autoenv: --- (begin contents) ---------------------------------------
autoenv: source /path/to/your/virtualenv/bin/activate$
autoenv: export PROJECT_ENV=development$
autoenv: --- (end contents) -----------------------------------------
autoenv:
autoenv: Are you sure you want to allow this? (y/N)
输入 y
确认后,Autoenv 会记住你的选择,下次不再询问。
如果你的项目有多个环境(如开发、测试、生产),可以这样配置:
# .env 文件内容
ENV_TYPE=${ENV_TYPE:-development} # 默认为 development
if [ "$ENV_TYPE" = "development" ]; then
source /path/to/dev_env/bin/activate
elif [ "$ENV_TYPE" = "production" ]; then
source /path/to/prod_env/bin/activate
fi
使用时可以通过环境变量指定环境类型:
ENV_TYPE=production cd /path/to/your/project
在 .env
文件中添加 .env.leave
配置:
# .env 文件内容
source /path/to/your/virtualenv/bin/activate
# 定义离开时的操作
echo 'deactivate' > .env.leave
.env
文件不被提交到版本控制(添加到 .gitignore
).env
文件的执行chmod +x /path/to/your/virtualenv/bin/activate
如果你不想使用 Autoenv,也可以考虑:
direnv
:功能更强大的环境管理工具bash
# 添加到 ~/.bashrc 或 ~/.zshrc
function cd() {
builtin cd "$@"
if [[ -f "./venv/bin/activate" ]]; then
source ./venv/bin/activate
fi
}
Autoenv 提供了一种简单直接的方式来管理项目环境,特别适合 Python 开发工作流。