Centos7 python虚拟环境virtualenv和virtualenvwrapper简单介绍

Posted caesar-id

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos7 python虚拟环境virtualenv和virtualenvwrapper简单介绍相关的知识,希望对你有一定的参考价值。

我的系统版本是

[[email protected] ~]# cat /etc/os-release

技术图片

我的Python版本是

[[email protected] ~]# python3 -V

技术图片

关于如何安装Python请看我的django环境搭建的博客https://www.cnblogs.com/caesar-id/p/10791791.html

下面我们来开始搭建基于Python3.6.2版本的虚拟环境virtualenv:

1、由于Centos自带的yum源下载比较慢,这里我们使用国内阿里的yum源。

备份系统自带的软件源

[[email protected] ~]# mkdir /etc/yum.repos.d/backup

[[email protected] ~]# mv /etc/yum.repos.d/* /etc/yum.repos.d/backup/

我们到阿里的镜像站https://opsx.alibaba.com/mirror选择一个合适的yum源

[[email protected] ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

[[email protected] ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

[[email protected] ~]# yum clean all        # 清除原来的yum缓存

[[email protected] ~]# yum makecache        # 生成新的缓存

2、安装Python3的虚拟模块virtualenv

[[email protected] ~]# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv

 安装后使用pip3  list进行查看

技术图片

 3、创建virtualenv虚拟环境

[[email protected] opt]#cd  /opt

[[email protected] opt]# virtualenv --no-site-packages --python=python3 env_1

--no-site-packages:表示使用一个只有Python3的环境,而不导入原来Python3中安装模块。

--python=python3:指定要被虚拟的解释器环境。

env_1:表示虚拟的Python环境目录。

4、创建好虚拟环境后,需要激活虚拟目录

[[email protected] opt]# source env_1/bin/activate      # 激活虚拟目录

激活成功后我们发现原来的路径前出现了虚拟环境的目录,这样我们便成功激活并进入到了虚拟环境中。

技术图片

 我们来看下env_1的虚拟目录下都有哪些文件

技术图片

 我们在看看bin目录下都有什么

技术图片

 查看下pip3命令

技术图片

 我们可以发现现在的Python环境全部都是env_1下的Python环境。在来查看下当前虚拟环境是否是纯净的Python环境

技术图片

 虚拟环境只有纯净的Python环境,也许你现在还没有发现他的魅力所在,下面我们开始吧。

5、在env_1的虚拟环境下安装django1.11.20

(env_1) [[email protected] opt]# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple django==1.11.20

安装好后我们使用pip3 list查看下

技术图片

 安装成功后,我们来启动个django项目

(env_1) [[email protected] opt]# django-admin startproject django_1

(env_1) [[email protected] opt]# vim django_1/django_1/settings.py     # 修改配置文件允许其它主机可以访问

技术图片

 启动django项目

(env_1) [[email protected] opt]# python3 django_1/manage.py runserver 0.0.0.0:8000
[[email protected] opt]#iptables  -F  # 清空防火墙规则

 访问django项目前,我们需要将本机的防火墙规则清空下,要不会被防火墙拒之门外。

看到如下界面说明我们访问成功。

技术图片

 6、下面我们在创建个虚拟环境env_2

[[email protected] ~]# virtualenv --no-site-packages --python=python3 env_2

7、激活虚拟环境

[[email protected] ~]# source env_2/bin/activate

此时我们在看下pip3和python3

技术图片

 可以发现是env_2下的Python3和pip3,在来查看下pip  list

技术图片 

 发现还是纯净的Python环境,这正是虚拟环境的魅力所在。下面我们在env_2中安装django2.0

8、安装django2.0

(env_2) [[email protected] ~]# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple django==2.0

技术图片

 9、创建django2.0的项目

(env_2) [[email protected] ~]# django-admin startproject django_2

(env_2) [[email protected] ~]# vim django_2/django_2/settings.py 

技术图片

 10、启动django2.0项目

(env_2) [[email protected] ~]# python3 django_2/manage.py runserver 0.0.0.0:9000

11、访问django2.0项目

技术图片

 

 

这样我们便实现了在一个操作系统上同时运行django1.0和django2.0两个环境。

12、好了既然可以运行虚拟环境,下面我们来看看如何退出虚拟环境。其实很简单,如下:

(env_2) [[email protected] ~]# deactivate    # 退出虚拟环境

我们都知道Linux一切皆文件,所以如果想要删除虚拟环境只需rm -r  env_1把虚拟环境的文件夹删掉即可,好了virtualenv我们就简单介绍到这里。

如果想要了解更多virtualenv官网https://virtualenv.pypa.io/en/latest/


 

virtualenv 虽然功能很好用,但是有一个最大的缺点就是每次开启虚拟环境之前要去虚拟环境所在目录下的 bin 目录下 source 一下 activate,这就需要我们记住每个虚拟环境所在的目录。

并且还有可能你忘记了虚拟环境放在哪以及该虚拟环境对应哪个项目。一种可行的解决方案是,将所有的虚拟环境目录全都集中起来,例如/opt/all_venv/,并且针对不同的目录做不同的事。但即使这样在项目多的时候貌似也不是很方便,于是virtualenvwrapper便站了出来要解决这个问题,下面我们简单了解下virtualenvwrapper的使用。

1、安装virtualenvwrapper

[[email protected] ~]# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenvwrapper

安装成功后看起来像下面这个样子:

技术图片

2、安装成功后,设置开机启动。

我们可以在/etc/profile中设置开机自启动,这样的话会影响系统所有用户,也可以在用户家目录下~/.bash_profile针对某个用户进行设置。

这里我们针对root用户进行设置。

[[email protected] ~]# vim ~/.bash_profile      # 在配置文件的末尾我们添加如下配置

技术图片

[[email protected] ~]# source  ~/.bash_profile     # 使文件立即生效

3、我们在开一个shell登陆root,创建虚拟环境

[[email protected] Envs]# mkvirtualenv env_django_1

技术图片

使用pip3 list 查看一下:

技术图片

 下面的使用就和virtualenv类似了,这里不再重复。退出虚拟环境和virtualenv一样

(env_django_1) [[email protected] Envs]# deactivate    # 退出虚拟环境

4、激活工作目录和virtualenv不同,使用workon

[[email protected] Envs]# workon env_django_1    # 激活虚拟环境

5、查看有哪些虚拟环境

[[email protected] Envs]# lsvirtualenv 

技术图片

6、删除虚拟环境

[[email protected] Envs]# rmvirtualenv env_django_1

跟多有趣的内容请看官方文档:https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html

 

以上是关于Centos7 python虚拟环境virtualenv和virtualenvwrapper简单介绍的主要内容,如果未能解决你的问题,请参考以下文章

[Django] 创建python virtual environment 虚拟环境 并激活 | 安装配置Django

[Django] 创建python virtual environment 虚拟环境 并激活 | 安装配置Django

python虚拟环境迁移

python虚拟环境迁移

原创如何设置Virtual Box虚拟机CentOS7为静态IP地址

使用vagrant在virtual上创建centos7虚拟机