五分钟轻松学会管理项目开发环境。

  在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.x。所有第三方的包都会被pip安装到Python3的site-packages目录下。

  pycharm安装可以在设置里进行管理。

  如果我们要同时开发多个应用程序,每个应用可能需要各自拥有一套“独立”的Python运行环境,尤其是git协调开发,一个使用django2.0,一个使用django1.x,同时还要开发其他项目,所以能独立出每个项目的开发环境是很有必要的。virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。

  virtualenv的优点:

  使不同的应用开发环境独立;

  环境升级不影响其他的应用,也不会影响全局的python开发环境;

  它可以防止系统中出现包管理混乱和版本的冲突。

安装使用virtualenv

pip install virtualenv
C:\Users\jeffd>virtualenv testenv#新建虚拟环境
Using base prefix 'c:\\users\\jeffd\\appdata\\local\\programs\\python\\python36-32'
New python executable in C:\Users\jeffd\testenv\Scripts\python.exe//默认安装在当前目录下
Installing setuptools, pip, wheel...done.
C:\testenv\Scripts>activate           //激活

(testenv) C:\testenv\Scripts>        //注意终端发生了变化
(testenv) C:\testenv\Scripts>deactivate //关闭当前虚拟环境
C:\testenv\Scripts>

  在激活的状态下pip的安装包都是安装到C:\Users\jeffd\testenv\Scripts下,可以显示当前env环境下的所有包的版本信息。

(testenv) C:\Users\jeffd\testenv\Scripts>pip list
pip (9.0.1)
setuptools (38.2.4)
wheel (0.30.0)

  加强版本:virtualenvwrapper,他是virtualenv的扩展包,Windows下的安装操作是:

pip install virtualenvwrapper-win
c:\>mkvirtualenv testenv2  //创建虚拟环境
C:\Users\jeff\Envs is not a directory, creating
Using base prefix 'c:\\python36'
New python executable in C:\Users\jeff\Envs\testenv2\Scripts\python.exe //virtualenvwrapper默认会把虚拟环境放在一个目录下
Installing setuptools, pip, wheel...done.
(testenv3) c:\Users\jeff\Envs\testenv2\Scripts>workon  //查看当前有哪些虚拟环境

Pass a name to activate one of the following virtualenvs:
==============================================================================
testenv2
testenv3
(testenv3) c:\Users\jeff\Envs\testenv2\Scripts>workon testenv2 //workon也可以用来切换虚拟环境
(testenv2) c:\Users\jeff\Envs\testenv2\Scripts>

  这个扩展包对环境进行了统一管理,可以进行无缝切换工作环境,非常的实用,你问我怎么用?

  第一步,打开pycharm找到解释器设置的位置:

  第二步,找到你刚才的配置环境的目录:

  确认就成功了:

  最后要说一点,我们平时安装包都是使用的官方的地址,下载速度十分感人,所以我找了一个国内的pip源,某度云开没开会员的差距,地址是https://pypi.tuna.tsinghua.edu.cn/simple/,安装操作:

pip install xx==版本号 -i https://pypi.tuna.tsinghua.edu.cn/simple/

  可以说是非常的简单,非常的实用,欢迎各位大佬批评指正。

快速上手virtualenv的更多相关文章

  1. 【Python五篇慢慢弹】快速上手学python

    快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...

  2. 快速上手Unity原生Json库

    现在新版的Unity(印象中是从5.3开始)已经提供了原生的Json库,以前一直使用LitJson,研究了一下Unity用的JsonUtility工具类的使用,发现使用还挺方便的,所以打算把项目中的J ...

  3. [译]:Xamarin.Android开发入门——Hello,Android Multiscreen快速上手

    原文链接:Hello, Android Multiscreen Quickstart. 译文链接:Hello,Android Multiscreen快速上手 本部分介绍利用Xamarin.Androi ...

  4. [译]:Xamarin.Android开发入门——Hello,Android快速上手

    返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...

  5. 快速上手seajs——简单易用Seajs

    快速上手seajs——简单易用Seajs   原文  http://www.cnblogs.com/xjchenhao/p/4021775.html 主题 SeaJS 简易手册 http://yslo ...

  6. Git版本控制Windows版快速上手

    说到版本控制,之前用过VSS,SVN,Git接触不久,感觉用着还行.写篇博文给大家分享一下使用Git的小经验,让大家对Git快速上手. 说白了Git就是一个控制版本的工具,其实没想象中的那么复杂,咱在 ...

  7. Objective-C快速上手

    最近在开发iOS程序,这篇博文的内容是刚学习Objective-C时做的笔记,力图达到用最短的时间了解OC并使用OC.Objective-C是OS X 和 iOS平台上面的主要编程语言,它是C语言的超 ...

  8. Netron开发快速上手(二):Netron序列化

    Netron是一个C#开源图形库,可以帮助开发人员开发出类似Visio的作图软件.本文继前文”Netron开发快速上手(一)“讨论如何利用Netron里的序列化功能快速保存自己开发的图形对象. 一个用 ...

  9. Netron开发快速上手(一):GraphControl,Shape,Connector和Connection

    版权所有,引用请注明出处:<<http://www.cnblogs.com/dragon/p/5203663.html >> 本文所用示例下载FlowChart.zip 一个用 ...

随机推荐

  1. JS-类型转换

    类型转换 值 转字符串 数字 布尔值 对象 undefined 'undefined' 0 false throws TypeError null 'null' 0 false throws Type ...

  2. java的linux命令

    1.查找文件find / -name filename.txt 根据名称查找/目录下的filename.txt文件.find . -name “*.xml” 递归查找所有的xml文件2.查看一个程序是 ...

  3. 向ASP.NET Core迁移

    有人说.NET在国内的氛围越来越不行了,看博客园文章的浏览量也起不来.是不是要转Java呢? 没有必要扯起语言的纷争,Java也好C#都只是语言是工具,各有各的使用场景.以前是C#非开源以及不能在Li ...

  4. Node做中转服务器,转发接口

    查询各种资料,和整理网上一哥们不完整的接口.做成,可以使用的转发服务! 由于项目在做前后端分离,牵扯跨域和夸协议问题,临时抱佛脚,选择用nodejs做中转,我想应该好多人都用它.但是做普通的表单转发没 ...

  5. JS小游戏:贪吃蛇(附源码)

    javascript小游戏:贪吃蛇 此小游戏采用的是面向对象的思想,将蛇,食物,和游戏引擎分为3个对象来写的. 为方便下载,我把js写在了html中, 源码中暂时没有注释,等有空我在添加点注释吧. 游 ...

  6. radis学习总结

    Redis与Memcached的比较. 1.Memcached是多线程,而Redis使用单线程. 2.Memcached使用预分配的内存池的方式,Redis使用现场申请内存的方式来存储数据,并且可以配 ...

  7. [转]Spring.Net介绍

    转自:http://www.cnblogs.com/cilence/archive/2013/02/21/2920478.html Spring.NET下载地址:http://www.springfr ...

  8. 在使用hibernate的getHibernateTemplate()时怎么让控制台输出封装好的SQL? 怎么用日志打印出来?

    我们在使用 Hibernate 时一般只会关注是否显示生成的 SQL 语句,不过有些时候还不够.默认时 Hibernate 执行的 SQL 语句是打印在控制台上的,它也可以配置为输出给 Log4J 或 ...

  9. 【Java】java 中的泛型通配符——从“偷偷地”地改变集合元素说起

    一直没注意这方面的内容,想来这也算是基础了,就写了这个笔记. 首先java的通配符共有三种----先别紧张,现在只是粗略的过一下,看不看其实无所谓 类型 介绍 <?> 无限定通配符,等价于 ...

  10. 《java.util.concurrent 包源码阅读》14 线程池系列之ScheduledThreadPoolExecutor 第一部分

    ScheduledThreadPoolExecutor是ThreadPoolExecutor的子类,同时实现了ScheduledExecutorService接口. public class Sche ...