Python-Virtualenv虚拟环境

发布时间 2023-09-04 16:58:32作者: 日行一善g

一.为何需要

之前我们安装python第三方库时,都是直接通过pip install xx的方式进行安装的,这样会使第三方库直接安装到Python系统环境中,同时默认安装的都是最新版本的第三方库

 

这样安装会存在一个问题:

如果用Django 1.10.x开发了一个网站,同时有一个用Django 0.9开发的旧项目需要维护,但是Django 1.10不再兼容Django 0.9的一些语法。这时候就会碰到一个问题,如何在系统环境中同时拥有Django 1.10和Django 0.9两套不同的环境呢?

解决方案:我们就可以通过安装虚拟环境来解决这个问题,创建多个虚拟环境实现环境拆分,每个虚拟环境安装不同版本的库,从而满足不同的需求,各个虚拟环境之间相互独立、不对其它环境产生影响

 

二.部署

windows安装

虚拟环境的安装位置的修改(重要)

在我们安装虚拟环境之前,如果我们不设置虚拟环境安装的位置,系统则会默认的将虚拟环境安装到固定位置(一般为系统盘(C盘)),会增加我们系统盘的压力,这个时候我们就需要将虚拟环境的安装位置修改到其它任意位置

 

修改方法如下:

1.右键点击‘此电脑’按照如图方法即可完成修改:

 

注意事项

变量名一定为:WORKON_HOME

变量值一定为:虚拟环境安装位置的具体路径(自己新建任意一个文件夹的位置,文件夹名自己定义)

 

linux部署

python安装虚拟环境

pip install virtualenv

 

三.使用

如果存在多个python解释器,可以选择指定一个Python解释器(比如python2.7​​),没有指定则由系统默认的解释器来搭建:

mkdir my_project
cd my_project
virtualenv -p /usr/bin/python2.7 my_project_env

 

将会在当前的目录中创建一个名my_project_env的文件夹,这是一个独立的python运行环境,包含了Python可执行文件, 以及pip库的一份拷贝,这样就能安装其他包了,不过已经安装到系统Python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的“干净”的Python运行环境来。

 

要开始使用虚拟环境,其需要被激活:

source my_project_env/bin/activate

 

停用虚拟环境:

deactivate

四.问题

1.开启虚拟环境后,当前的sys.path是没有.这个当前路径的,所以在a/xx.sh去调用b/cc.sh会报错,没法b.cc这样加载。即使sys.path.append也不行,加了.或者..一样

解决办法:

通过sys.path添加绝对路劲,比如/data/pyscript这样,都根据这个路径来引用其它包