Python 开发环境之 venv

83 阅读2分钟

介绍

Python 多版本控制是进行开发的一项必备技能,Python 3 集成了内建模块 venv 使得控制不同版本的 Python 变得非常容易,这篇文章做一个入门介绍。

(1)创建一个虚拟环境:

进入一个 Python 项目所在目录,根据项目需要,我们可以创建一个对应版本的 Python 虚拟环境。

python3 -m venv venv

这会在当前目录中创建一个 venv 的文件夹,所有的虚拟环境文件都会在这个目录中。

(2)激活当前的虚拟环境
source venv/bin/activate
(3)验证
which python
which pip

执行上述两个命令,我们会发现 python 和 pip 等命令都是来自 venv 目录。

(4)安装 package

执行 pip 命令安装的 package 都会在 venv/lib/python3.12/site-packages/ 目录下:

pip install --upgrade pip
pip install requires
(5)取消激活

当需要改变虚拟环境时(比如切换进入另一个项目所在目录),我们需要先取消激活:

deactivate

我当前系统的 python 版本是 3.12。如果我想启用 3.10 环境的话,那么我们应该先安装这个版本,然后按照上述流程启用即可。

步骤如下:

brew install python@3.9 python@3.10 

cd project-dir/
python3 -m venv venv39
source venv/bin/activate
python -V

deactivate

cd another-project-dir/
python3 -m venv venv39
source venv/bin/activate
python -V

(6)虚拟目录的选择

当我们在某个项目(proj1)中创建虚拟环境时,如果是在项目中创建虚拟环境目录,那么我们激活环境后,如果 cd 到项目外的目录,比如其他项目(proj2)中时,我们的环境依然有效。

这会导致一个问题,那就是我们在 proj2 中也使用了 proj1 的环境了,而环境目录由在 proj1 中管理。容易产生混乱。因此,把虚拟环境创建在哪里还是有点讲究的。可以考虑在一个公共的目录中来创建,这样大家都可以访问。也可以避免很多重复的包,节省磁盘占用。

使用 venv 创建不同的目录我们就有了不同的 env 环境,如果我们想查看系统中(或项目中)一共创建了哪些

env 环境,我们可以借助 virtualenvwrapper 这个工具,方法是:

安装

pip install virtualenvwrapper

添加环境变量 ~/.bashrc

export WORKON_HOME=~/Envs
source /usr/local/bin/virtualenvwrapper.sh

重启

source ~/.bashrc

创建一个新环境

mkvirtualenv my_env

列出所有环境

lsvirtualenv

切换环境

workon <env_name>

全文完!

如果你喜欢我的文章,欢迎关注我的微信公众号 deliverit。