我的系统版本是

[root@localhost ~]# cat /etc/os-release

我的Python版本是

[root@localhost ~]# python3 -V

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

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

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

备份系统自带的yun源

[root@localhost ~]# mkdir /etc/yum.repos.d/backup

[root@localhost ~]# mv /etc/yum.repos.d/* /etc/yum.repos.d/backup/

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

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

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

[root@localhost ~]# yum clean all        # 清除原来的yum缓存

[root@localhost ~]# yum makecache        # 生成新的缓存

163源:http://mirrors.163.com/.help/centos.html

中科大源:https://lug.ustc.edu.cn/wiki/mirrors/help/centos

2、安装Python3的虚拟模块virtualenv

[root@localhost ~]# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv

安装后使用pip3  list进行查看

3、创建virtualenv虚拟环境

[root@localhost opt]#cd  /opt

[root@localhost opt]# virtualenv --no-site-packages --python=python3 env_1

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

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

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

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

[root@localhost opt]# source env_1/bin/activate      # 激活虚拟目录

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

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

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

查看下pip3命令

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

虚拟环境只有纯净的Python环境,没有掺杂系统原本安装的模块,也许你现在还没有发现他的魅力所在,下面我们开始吧。

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

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

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

安装成功后,我们创建一个django项目django_1

(env_1) [root@localhost opt]# django-admin startproject django_1

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

启动django项目

(env_1) [root@localhost opt]# python3 django_1/manage.py runserver 0.0.0.0:

访问django项目前,我们需要暂时清空本机的防火墙规则,或者暂时关闭防火墙,否则在访问本机8000端口时会被防火墙拒之门外的,我们新开一个shell。

[root@localhost opt]#iptables  -F  # 清空防火墙规则

[root@localhost ~]# systemctl stop firewalld.service   # 也可以暂时关闭防火墙

如果上面一切顺利的话,我们将看到如下界面。

6、下面我们在创建个虚拟环境env_2(注意:你需要另开一个新shell来创建虚拟环境env_2)

[root@localhost ~]# virtualenv --no-site-packages --python=python3 env_2

7、激活虚拟环境

[root@localhost ~]# source env_2/bin/activate

此时我们在看下pip3和python3

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

发现还是纯净的Python环境,virtualenv正逐渐的向我们展示它强大的一面。下面我们在env_2中安装django2.0

8、安装django2.0

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

9、创建django2.0的项目

(env_2) [root@localhost ~]# django-admin startproject django_2

(env_2) [root@localhost ~]# vim django_2/django_2/settings.py 

10、启动django2.0项目

(env_2) [root@localhost ~]# python3 django_2/manage.py runserver 0.0.0.0:

11、访问django2.0项目

这样我们便实现了在一个操作系统上同时运行django1.0和django2.0两个环境,也许你可能觉得这还不够,还有更多的功能等待我们去探索。

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

(env_2) [root@localhost ~]# 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

[root@localhost ~]# pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenvwrapper

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

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

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

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

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

[root@localhost ~]# source  ~/.bash_profile     # 使文件立即生效

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

[root@localhost Envs]# mkvirtualenv env_django_1

使用pip3 list 查看一下:

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

(env_django_1) [root@localhost Envs]# deactivate    # 退出虚拟环境

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

[root@localhost Envs]# workon env_django_1    # 激活虚拟环境

5、查看有哪些虚拟环境

[root@localhost Envs]# lsvirtualenv 

6、删除虚拟环境

[root@localhost Envs]# rmvirtualenv env_django_1

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

Centos7 python虚拟环境virtualenv和virtualenvwrapper简单介绍的更多相关文章

  1. python虚拟环境--virtualenv和virtualenvwrapper

    python虚拟环境--virtualenv和virtualenvwrapper http://www.cnblogs.com/technologylife/p/6635631.html https: ...

  2. os系统安装Python虚拟环境virtualenv和virtualenvwrapper

    一.安装Python 上节已经讲了如何安装Python2和Python3 二.给Python3安装virtualenv 在终端输入:sudo pip3 install virtualenv 等待安装成 ...

  3. Python 虚拟环境Virtualenv

    本人也是Python爱好者,众所周知,Python扩展多,每次为了测试,安装各种各样的扩展,这样导致本地的Python环境非常混乱,就有人想到搞个隔离环境  和 本地环境没有关系,随时可以删除这个隔离 ...

  4. Centos7虚拟环境virtualenv与virtualenvwrapper的安装及基本使用

    一.使用虚拟环境的原因 在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题:亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难.此时,我们需 ...

  5. python虚拟环境 -- virtualenv , virtualenvwrapper

    virtualenv -- python虚拟沙盒 有人说:virtualenv.fabric 和 pip 是 pythoneer 的三大神器. 一.安装 pip install virtualenv ...

  6. Linux下安装python虚拟环境(virtualenv,vritulaenvwrapper)

    一.virtualenv virtualenv是如何创建"独立"的Python运行环境的呢? 原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令sour ...

  7. python之virtualenv 与 virtualenvwrapper 详解

    在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题: 亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难. 此时,我们需要对于不同的工程使用 ...

  8. windows下python虚拟环境virtualenv安装和使用

    前面介绍了python在ubuntu16.04环境下,python的虚拟环境virtualenv的安装,下面介绍在windows环境下的安装和使用. 环境信息 操作系统:windows10 pytho ...

  9. #Python学习#python虚拟环境——virtualenv

    前言 在Ubuntu系统中,系统一般会默认安装python2.x和3.x,像我近期买的阿里云ECS默认安装了2.7.2和3.5.2,所有pip安装的第三方包都会被放在默认的site-apckages目 ...

随机推荐

  1. k8s volume存储卷(四)

    介绍 volume存储卷是Pod中能够被多个容器访问的共享目录,kubernetes的volume概念,用途和目的与docker的volume比较类似,但两者不能等价,首先,kubernetes中的v ...

  2. Maven+SSM框架,实现单表简单的增删改查

    目录 1.创建web Maven项目 2.创建java源码文件和resources资源文件 3.创建数据库配置文件:jdbc.properties 4.项目总体目录: 5.添加spring配置文件:a ...

  3. 201871010104-陈园园 《面向对象程序设计(java)》第十周学习总结

    201871010104-陈园园 <面向对象程序设计(java)>第十周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  4. C++中#define与typedefine的区别

    原文链接:https://www.cnblogs.com/fengfengqingqingyangyang/p/3270432.html (1)typedef是用来定义关键字/标识符的别名,并未分配内 ...

  5. 使用CSS来渲染HTML的表单元素

    效果: 实现: <!DOCTYPE html> <html> <head> <title>使用CSS来渲染HTML的表单元素</title> ...

  6. 【Excel】输入单引号

    首位输入:输入两个单引号 拼接输入:可以引入输入 举个例子:拼接一个SQL,values都是字符串,需要引号 =IF( OR(A2="",B2="",C2=&q ...

  7. nwjs-打包

    1: 将项目内所有文件压缩成一个压缩包 app.zip 2: 将压缩包重命名为 app.nw 3: 将压缩包放置到 下载解压后的 nw.js 根目录下 4: shift+鼠标右键 选择在此处打开命令窗 ...

  8. Mysql查询数据库状态及信息

    使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小.字符集.用户等等.下面总结了一些查看数据库相关信息的命令 1:查看显示所有数据库 mysql> show databases; ...

  9. 【转】hibernate对象三种状态

    hibernate里对象有三种状态: 1,Transient 瞬时 :对象刚new出来,还没设id,设了其他值. 2,Persistent 持久:调用了save().saveOrUpdate(),就变 ...

  10. windwos文件句柄数限制

    1.修改注册表,位置如下: HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Windows 2.设置 1.GDIProc ...