介绍
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。