由于开发环境要求,或者实际需要。经常会出现python2.7和python3.x共存下的开发环境问题。虚拟环境的搭建可以很好的隔离Projects的开发环境。

1.首先解决python2.7和python3.x的pip问题

  由于py2和py3版本都是使用的pip,然而我们在安装Python3(>=3.3)时,Python的安装包实际上在系统中安装了一个启动器py.exe,默认放置在文件夹C:\Windows\下面。这个启动器允许我们指定使用Python2还是Python3来运行代码(当然前提是你已经成功安装了Python2和Python3)。

  如果你有一个Python文件叫 hello.py,那么你可以在命令行这样用Python2运行它

    py -2 hello.py

  类似的,如果你想用Python3运行它,就这样

    py -3 hello.py

  或者在代码文件的最开始加入一行

    #! python2; #! python3

  这样,运行的时候你的命令就可以简化为

    py hello.py

  使用pip

  由于Py2和Py3它们对应的pip都叫pip.exe,所以不能够直接使用 pip install 命令来安装软件包。而是要使用启动器py.exe来指定pip的版本。命令如下:

    py -2 -m pip install XXXX

  -2 还是表示使用 Python2,-m pip 表示运行 pip 模块,也就是运行pip命令了。Python3版本:

    py -3 -m pip install XXXX

2.安装,激活,退出虚拟环境

虚拟环境在cmd下的安装主要有两种方法:

(1) virtualenv

  win+R,输入cmd,

  >>>pip install virtualenv  (2,3版本共存选择如上命令行安装)

  (ps:安装过程中出现报错: ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org, port=443) Read time out :,可以通过文章末尾提供的方法解决。)

  安装完成后创建虚拟环境:virtualenv env,默认安装在C:\Users\user_name\目录下

  激活虚拟环境:命令行下,

    >>>cd env_name\Scripts

    >>>C:\Users\user_name\env27\Scripts\ activate.bat

    出现(env27) C:\Users\wj_19\env27\Scripts>即表示进入虚拟环境

  退出虚拟环境:同样在Scripts目录下,执行deactivate.bat即可退出

(2)virtualenvwrapper-win(Linux环境下virtualenvwrapper)

  win+R,cmd

  >>>pip install virtualenvwrapper-win  (版本自选)

  安装完成后接下来就是相同的创建,激活等操作了

  创建虚拟环境:与virtualenv不同的是,virtualenvwrapper会自动将创建的env放在同一文件下,如创建一个叫py27.1的虚拟环境

    >>>mkvirtualenv env27.1

    初次创建时,virtualenvwrapper会在当前盘根目录下自动建立一个虚拟环境的文件夹,然后将新建的env27.1存进去。

    创建结果和文件夹内容如图:

      

  输入workon显示该目录下所有虚拟环境,可以选择不同的虚拟环境进行工作,即激活虚拟环境

    >>>workon py27.0

  当我们需要导入第三方的包(packages)时,在该虚拟环境下(一定要先激活使用的虚拟环境)比如导入requests:

    >>>pip install requests

  反之卸载:

    >>>pip uninstall requests

  结束后退出虚拟环境

    >>>deactivate

  

这是末尾:

  解决pip install vitualenv/virtualwrapper报错的问题:

  我们在使用pip安装virtualenv,scrapy等模块报错 :ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org, port=443) Read time out :
可以随便新建一个文件,重命名为.py文件,复制下面代码到这个文件,然后在命令行运行。

  

 import os  

 ini="""[global]
index-url = https://pypi.doubanio.com/simple/
[install]
trusted-host=pypi.doubanio.com
"""
pippath=os.environ["USERPROFILE"]+"\\pip\\" if not os.path.exists(pippath):
os.mkdir(pippath) with open(pippath+"pip.ini","w+") as f:
f.write(ini)

  

  运行完后再重新试下

  >>>pip install virtualenv

  >>>pip install virtualenvwrapper-win

  完全ojbk。

  最后献上解决方法的出处,供更多了解

    出处:https://segmentfault.com/q/1010000000496093
    答主:FGFW

    

  

python多环境下虚拟环境的搭建和使用的更多相关文章

  1. windows 10 环境下 使用Anaconda搭建 TensorFlow 环境

    ##大致步骤 1 安装Anaconda 2 在Anaconda中建立虚拟TensorFlow的虚拟环境 建立虚拟环境的命令是 conda  create -n tensorflow python=3. ...

  2. Windows环境下使用Nginx搭建负载均衡

    前言 最近没有什么事情,喜欢总结并学习东西!前几天写来一个Session共享,那么我们为什么需要Session共享?因为我们的应用程序分布在多个服务器上,为了合理分配用户的请求,就需要用到负载均衡技术 ...

  3. windows环境下apache-apollo服务器搭建及发布订阅测试

    查证了一些资料之后,发现 apache-apollo服务器使用的人还是挺多的,资料也比较齐全,所以直接选择 apache-apollo了,具体性能如何,先用起来再说吧: 1.下载 apache-apo ...

  4. 非域环境下SQL Server搭建Mirror(镜像)的详细步骤

    1.测试验证环境 服务器角色 机器名 IP SQL Server Ver 主体服务器 WIN-TestDB4O 172.83.XXX.XXX SQL Server 2012 - 11.0.5058.0 ...

  5. windows环境下基于nginx搭建rtmp服务器

    基于nginx搭建rtmp服务器需要引入rtmp模块,引入之后需重新编译nginx linux环境几个命令行就能实现编译,笔者未尝试,网上有很多教程. windows环境还需要安装一系列的编译环境,例 ...

  6. windows环境下利用Gitblit搭建Git服务器并实现自动部署Web站点目录

    Git服务搭建多见于linux环境,但windows主机也不少,目前网上文章诸多不全,且以讹传讹,不甚清楚.下面介绍windows环境下的自动部署和发布. 所需环境及资源:Java环境.Gitblit ...

  7. Linux环境下Gitblit服务搭建及秘钥配置

    一.安装gitblit服务 1.下载地址 https://pan.baidu.com/s/1wQ3TEE_gw5xZvyFPZB9xFg 2.上传至linux服务器并解压缩 tar xvf gitbl ...

  8. 在windows环境下利用virtualenv搭建Python虚拟环境

    安装Python 安装时只有一点需要注意,一定一定要将Python添加到系统环境变量那一项勾选. 安装 virtualenv 加入系统目录之后,命令行(CMD)下就多了一条命令:pip.用pip可以自 ...

  9. Linux环境下虚拟环境virtualenv安装和使用

    virtualenv用于创建独立的Python环境,多个Python相互独立,互不影响,它能够: 1. 在没有权限的情况下安装新套件 2. 不同应用可以使用不同的套件版本 3. 套件升级不影响其他应用 ...

随机推荐

  1. Docker实践:运行Python应用

    本文将使用fig应用编排实现一个python的计数器,并使用web展示. 阅读本文您需要具备以下知识: 1.了解Python 2.熟练Docker基础知识(包括Dockerfile语法) 3.了解Do ...

  2. [Effective JavaScript 笔记] 第9条:始终声明局部变量

    如果忘记将变量声明为局部变量,该变量将会隐式地转变为全局变量 function swap(a,i,j){ temp=a[i]; a[i]=a[j]; a[j]=temp; } 尽管该程序没有使用var ...

  3. Linux grep和find的区别

    这是两个不同的命令,关于grep:Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expressi ...

  4. 使用C#的自定义事件

    public class CarDealer { public Action<string> NewCarInfo; //使用系统定义的泛型委托 public void NewCarCom ...

  5. 中文转unicode,中文转bytes,unicode转bytes java实现

    utf-8 utf-8格式的中文由三位字节组成. UTF-8的编码规则很简单,只有二条: 1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码.因此对于英语字母,UTF-8编 ...

  6. 三、编辑 Update set

    文档目录 开始使用  初始化查询实例: LambdaToSql.SqlClient DB = new LambdaToSql.SqlClient(); 更新单个实体对象,必须有主键Guid var e ...

  7. blackbox_exporter介绍

    Blackbox Exporter是Prometheus社区提供的官方黑盒监控解决方案,其允许用户通过:HTTP.HTTPS.DNS.TCP以及ICMP的方式对网络进行探测. 1.安装部署 cd /u ...

  8. 浅谈php

    strlen() 常用于循环和其他函数,在确定字符串何时结束很重要时.(例如,在循环中,我们也许需要在字符串的最后一个字符之后停止循环). strpos() 函数用于检索字符串内指定的字符或文本. 如 ...

  9. js基本类型,隐式转换,变量

    Js笔记(脚本语言 node.js) Js五种基本类型:数字,字符串,布尔,null,undefined: HTML结构,表现,行为分离. 变量命名规则: 以字母或[下划线开始($)]不推荐,后面跟上 ...

  10. Kubernetes Ingress管理

    目录 Ingress介绍 1.Pod漂移问题 2.端口管理问题 3.域名分配及动态更新问题 Nginx Ingress配置 1.部署默认后端 2.部署Ingress Controller 3.部署In ...