为什么要使用虚拟环境?
Python有强大的打包系统,可用来管理程序的模块依赖关系,我们经常使用pip打包管理命令安装第三方软件包,但是使用pip安装有一个问题,那就是软件包默认会被安装到全局Python环境中。当然,这样安装的新软件包在系统上可以正常使用,但如果需要同时处理多个项目,不同的项目又依赖于同一个软件包的不同版本,那么很快就会导致一场噩梦。
例如,一个项目需要库的1.0版本,而另一个项目需要这个库的2.0版本,在全局安装软件包时,所有程序只能使用同一版本的Python软件包,因此会遇到版本冲突问题。
不同的程序还可能会用到不同版本的Python版本,例如,有些旧的系统仍然需要在Python 2.7上运行,而新的系统需要在Python 3运行,除此之外,全局安装Python软件包还可能带来安全风险,修改全局环境通常需要用超级用户root权限运行pip install命令,由于pip在安装新软件包时是从互联网下载代码并执行,因此通常不建议用超级用户执行。虽然大家都希望代码是安全且值得信赖的,但是谁知道它会真正做些什么呢?
如何使用虚拟环境?
解决以上问题的办法就是使用虚拟环境将各个Python环境分开,即按项目隔离Python依赖库,每个项目根据需求选择不同版本的Python解释器,并在自己的虚拟环境中安装依赖库。
虚拟环境是一个隔离的Python环境,从直观的角度来说,虚拟环境位于一个文件夹中,其中含有所需的软件包和依赖,比如Python项目需要用到的本地代码库和解释器运行时,实际上可能没有完全复制这些文件,只是使用了占用