环境搭建 | 快速激活虚拟环境

virtualenv + autoenv 实现切换工程目录时自动激活虚拟环境

Posted by Haauleon on December 9, 2022

本篇所有操作均在基于 ubuntu==20.04,python==2.7.11+ 且 pip==9.0.3 的环境下完成



一、背景

  虚拟环境可以达到项目环境隔离的效果,为了免去进入工程项目后还要手动激动虚拟环境,这里使用 autoenv 实现在切换目录的同时自动激活该项目的虚拟环境。



二、环境配置

以项目 flask_web 为例。


1、安装 autoenv

1
2
3
> sudo pip2 install virtualenv
> sudo pip2 install autoenv
> source /usr/local/bin/activate.sh



2、编辑 shell 配置

  为了下次登录后可以自动初始化脚本,需要在 shell 的配置文件中加入以下命令行:

1
source /usr/local/bin/activate.sh

  如果是 zsh,则编辑 zprofile 文件。如果是 bash,则编辑 profile 文件。我这里是用 bash,所以使用以下命令行打开配置文件 profile:

1
> vim /home/haauleon/.profile



3、创建虚拟环境 venv

1
2
> cd flask_web
> virtualenv venv



4、配置 .env 文件

1
2
3
> cd flask_web
> touch .env
> echo "source /mnt/d/gitee/flask_web/venv/bin/activate" > .env  # 需要使用 activate 所在的完整路径



5、效果演示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
> cd ..
> cd flask_web
You must source this script: $ source /mnt/d/gitee/flask_web/venv/bin/activate
autoenv:
autoenv: WARNING:
autoenv: This is the first time you are about to source /mnt/d/gitee/flask_web/.env:      
autoenv:
autoenv:     --- (begin contents) ---------------------------------------
autoenv:     source /mnt/d/gitee/flask_web/venv/bin/activate
autoenv:
autoenv:     --- (end contents) -----------------------------------------
autoenv:
autoenv: Are you sure you want to allow this? (y/N) y
(venv) haauleon@LAPTOP-EA7BF21I:/mnt/d/flask_web$