前言
前几天写了一篇《[记录] python 之 venv 当遇见error: externally-managed-environment》。但是总感觉这个是介绍怎么解决问题的,并不是专门来说python的venv的功能之类的,所以思来想去,还是重新开一篇文章来介绍(水)一下venv的基本操作。
正文
1. 什么是venv
venv
是python提供的创建轻量级的虚拟环境的方式,每个环境都有自己的安装目录,且与其他虚拟环境相互独立。这样做的好处就是环境控制(其实我想用conda的,奈何raspberry pi的cpu结构既不支持anaconda也不支持miniconda),这样的话依赖之间就不会互相冲突。
2. 安装venv
在Python 3.3以及以上的版本,venv
已经是标准库的一部分,一般来说不用单独安装,但是如果要的话pip install
即可。
3. 创建虚拟环境
CTRL
+ ALT
+ T
打开终端,切换到你想要创建的python的项目目录,运行下面的命令:
python3 -m venv <env_name>
这里的<env_name>
按照项目的内容进行取拟即可。
命令结束以后,在当前目录下会出现一个同名的<env_name>
,里面有我们的虚拟python环境。
4. 激活虚拟环境
创建虚拟环境之后,我们需要进行激活。激活的虚拟环境会确保你在这个环境中安装或者运行的任何python包都是隔离的
如果在Linux或者MacOS,命令为:
source <env_name>/bin/activate
如果在Windows,命令为:
.\<env_name>\Scripts\activate
激活环境后,你的终端提示符会显示虚拟环境的名称,表明你现在在虚拟环境工作:
(<env_name>) seanzou@seanzou-desktop:~$ # 在虚拟环境
seanzou@seanzou-desktop:~$ # 不在虚拟环境,终端提示符没有虚拟环境名称
在虚拟环境激活的情况下,正常使用即可,你可以使用pip
进行安装,或者进行其他python相关开发活动,这些都只会影响当前的虚拟环境。(这也是我们的目的,不是嘛?:D)
5. 退出虚拟环境
当你完成工作时候,想要退出虚拟环境,在终端运行下面的命令:
deactivate
这会使你恢复到系统的全局Python环境。
6. 删除虚拟环境
如果你不再需要某个虚拟环境,你可以简单地通过删除其目录来删除它。(注意:在虚拟环境被激活的情况下,不能这么做,你首先要确保已经退出虚拟环境。)然后,使用以下命令删除虚拟环境目录:
如果在Linux或者MacOS,命令为:
rm -rf <env_name>
如果在Windows,命令为:
rmdir /s /q <env_name>
7. 缺点(只能创建对应版本的python环境)
其实venv
有一个缺点,就是其创建的虚拟环境继承了它被创建时所用的Python解释器的版本,也就是说使用venv
并不能像conda
那样直接安装不同版本的python,所以当需要不同版本的python的时候,还是要conda
或者手动了orz。
除了python我还发现一个用在MacOS上面的通过homebrew安装的pyenv
,可惜只在homebrew,apt
并没有找到,于是无法给Ubuntu用上。(pyenv/pyenv链接)
总结
学习一下venv~!
给不能用conda和pyenv的系统用用吧,害~。
参考
[1] ChatGPT
[2] 自己
[3] pyenv/pyenv
Q.E.D.