快速上手virtualenv
五分钟轻松学会管理项目开发环境。
在开发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的更多相关文章
- 【Python五篇慢慢弹】快速上手学python
快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...
- 快速上手Unity原生Json库
现在新版的Unity(印象中是从5.3开始)已经提供了原生的Json库,以前一直使用LitJson,研究了一下Unity用的JsonUtility工具类的使用,发现使用还挺方便的,所以打算把项目中的J ...
- [译]:Xamarin.Android开发入门——Hello,Android Multiscreen快速上手
原文链接:Hello, Android Multiscreen Quickstart. 译文链接:Hello,Android Multiscreen快速上手 本部分介绍利用Xamarin.Androi ...
- [译]:Xamarin.Android开发入门——Hello,Android快速上手
返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...
- 快速上手seajs——简单易用Seajs
快速上手seajs——简单易用Seajs 原文 http://www.cnblogs.com/xjchenhao/p/4021775.html 主题 SeaJS 简易手册 http://yslo ...
- Git版本控制Windows版快速上手
说到版本控制,之前用过VSS,SVN,Git接触不久,感觉用着还行.写篇博文给大家分享一下使用Git的小经验,让大家对Git快速上手. 说白了Git就是一个控制版本的工具,其实没想象中的那么复杂,咱在 ...
- Objective-C快速上手
最近在开发iOS程序,这篇博文的内容是刚学习Objective-C时做的笔记,力图达到用最短的时间了解OC并使用OC.Objective-C是OS X 和 iOS平台上面的主要编程语言,它是C语言的超 ...
- Netron开发快速上手(二):Netron序列化
Netron是一个C#开源图形库,可以帮助开发人员开发出类似Visio的作图软件.本文继前文”Netron开发快速上手(一)“讨论如何利用Netron里的序列化功能快速保存自己开发的图形对象. 一个用 ...
- Netron开发快速上手(一):GraphControl,Shape,Connector和Connection
版权所有,引用请注明出处:<<http://www.cnblogs.com/dragon/p/5203663.html >> 本文所用示例下载FlowChart.zip 一个用 ...
随机推荐
- PHP小技巧
1.js获取服务器年月日 var date= '<?php echo date("Y-m-d",time())?>';//获取服务器年月
- express的学习,与使用
最近在学习vue的一个实战项目,碰到一个express,当时很萌,就随便看了看................ expres是基于node 的一个web框架, 首先可以找到它的官网照着学习 这里只讲一 ...
- LNMP架构部署
第1章 部署LNMP架构步骤 1.1 ①部署Linux系统(OK) 基本优化完成(ip地址设置 yum源更新 字符集设置) 安全优化完成(iptables关闭 selinux关闭 /tmp/ 1777 ...
- 为JS内置对象添加常用方法
1.字符串全部替换: String.prototype.replaceAll = function(s1,s2){ return this.replace(new RegExp(s1,"gm ...
- C++使用htslib库读入和写出bam文件
有时候我们需要使用C++处理bam文件,比如取出read1或者read2等符合特定条件的序列,根据cigar值对序列指定位置的碱基进行统计或者对序列进行处理并输出等,这时我们可以使用htslib库 ...
- TextView SpannableString 使用之实现可点击超链接效果
TextView SpannableString 使用之实现可点击超链接效果 如果看到这里说明你对 TextView 已经有了一定的了解,至少已经使用过该控件显示文字过.现在来实现一些复杂一点的效果. ...
- JSP内容复习
JSP的3个编译指令,7个动作指令,9个内置对象 三个编译指令(通知servlet引擎的处理消息,只在JSP转换成Servlet时起作用) 1.编译指令 page page指令用户定义JSP页面中的全 ...
- JSON.parse()和JSON.stringify()和eval('(' + result + ')')
var str = '{"name":"huangxiaojian","age":"23"}' 结果: JSON.par ...
- 详谈Javascript类与继承
本文将从以下几方面介绍类与继承 类的声明与实例化 如何实现继承 继承的几种方式 类的声明与实例化 类的声明一般有两种方式 //类的声明 var Animal = function () { this. ...
- Spring框架——AOP代理
我们知道AOP代理指的就是设计模式中的代理模式.一种是静态代理,高效,但是代码量偏大:另一种就是动态代理,动态代理又分为SDK下的动态代理,还有CGLIB的动态代理.Spring AOP说是实现了AO ...