python为何需要虚拟环境--Python虚拟环境的安装和配置-virtualenv
一 虚拟环境 virtual environment
它是一个虚拟化,从电脑独立开辟出来的环境。通俗的来讲,虚拟环境就是借助虚拟机docker来把一部分内容独立出来,我们把这部分独立出来的东西称作“容器”,在这个容器中,我们可以只安装我们需要的依赖包,各个容器之间互相隔离,互不影响。譬如,本次学习需要用到Django,我们可以做一个Django的虚拟环境,里面只需要安装Django相关包就可以了,需要Scrapy库,就在开辟一个独立空间来学习Scrapy库相关就行了。
二 前言:为什么要用虚拟环境
在实际项目开发中,我们通常会根据自己的需求去下载各种相应的框架库,如Scrapy、Beautiful Soup等,但是可能每个项目使用的框架库并不一样,或使用框架的版本不一样,这样需要我们根据需求不断的更新或卸载相应的库。直接怼我们的Python环境操作会让我们的开发环境和项目造成很多不必要的麻烦,管理也相当混乱。如一下场景:
场景1:项目A需要某个框架1.0版本,项目B需要这个库的2.0版本。如果没有安装虚拟环境,那么当你使用这两个项目时,你就需要 来回 的卸载安装了,这样很容易就给你的项目带来莫名的错误;
场景2:公司之前的项目需要python2.7环境下运行,而你接手的项目需要在python3环境中运行,想想就应该知道,如果不使用虚拟环境,这这两个项目可能无法同时使用,使用python3则公司之前的项目可能无法运行,反正则新项目运行有麻烦。而如果虚拟环境可以分别为这两个项目配置不同的运行环境,这样两个项目就可以同时运行。
Tips:其实虚拟环境好处也确实比较多,会给我们项目的开发带来许多的好处,但是初学者,建议还是不要这么折腾,我们的首要目的是更快的掌握更多的知识,研究virtualenv会花费一些额外的经历,而且意志不强的同学很容易遭受打击,但是这个优点我们还是要记下来的方便以后要用的时候能很快的想起。
三 虚拟环境的安装和使用
本部分将通过命令给出搭建虚拟环境的过程和常见的使用方法:
1.前提必须安装好python环境,并检查电脑系统环境path是否有python路径,
2.安装虚拟环境
打开windows命令终端(cmd)安装虚拟环境 virtualenv(如果你执行了上面查看python版本的语句,那么要先使用exit()方法先退出)
pip3 install virtualenv
它会默认安装到你python库文件lib中,可以看安装完成的地址,里面给出了安装之后的库地址(上面是说我已经安装了,一般第一次安装任何库,看见sucessful就说明成了)
3.创建虚拟环境
通过上面的步骤安装成功之后,我们就可以创建虚拟环境了:virtualenv 虚拟环境名
这个命令创建虚拟环境,会在当前所在目录进行创建,如C:\Users\Smalu(电脑管理者路径)
virtualenv envname
4.进入虚拟环境
先要进入cd到虚拟环境的位置(目录)的Scripts中,然后在激活(activate.bat)虚拟环境,则进入新建的虚拟环境中了。
cd scrapy3env\Scripts
activate.bat
进入之后就可以通过pip3 命令安装需要各种框架依赖包了
5.退出虚拟环境 deactivate.bat
deactivate.bat
四 虚拟环境的配置
通过上面的步骤其实我们就已经完成虚拟环境virtualenv的安装和使用了,但是认真的你肯定发现了上面需要记住每一个虚拟环境的目录,才能进入虚拟环境并操作,很麻烦,下面我们通过另一个配置来简化我们的使用
1.安装 virtualenvwrapper-win
pip3 install virtualenvwrapper-win
2.然后使用workon查看是否安装成功(workon是简化操作的神级命令之一,下面你就可以体会到)
(出现这个,这说明安装成功)、
3.通过新方法新建我们的虚拟环境:mkvirtualenv 虚拟环境名
mkvirtualenv py3scrapy
4.配置。给你虚拟环境安装目录设置一个专门(你想放)的目录
通过上面的步骤,创建虚拟环境,默认放在C:\Users\电脑用户名\Envs目录中
这样可能有时候不满足我们的需求,比如我们想把项目放在其他盘(或其他位置),这样就需要我们自己配置一下环境
4.1 新建要存放大文件夹:如 D:\codeworkpace\python\envs
4.2 配置电脑系统环境变量,->新建系统变量 -> 变量名:WORKON_HOME ->指定路径:D:\codeworkpace\python\envs
通过设置WORKON_HOME路径,就给我们的python虚拟环境指定了一个存放位置:
再次运行workon,目录中没有虚拟环境了,因为默认目录已经改变
那么我们可以将之前的虚拟环境的项目拷贝到新建目录下
再次运行workon,就可以看到该目录下所有的虚拟空间了
5 进入(使用)某个虚拟空间:workon 虚拟空间名
workon #列出所以目录下的空间名
workon py3entest #使用名为py3entest的虚拟空间
#新建虚拟空间的方法依然是:mkvirtualenvs 空间名
6 退出虚拟空间 deactivate
deactivate
总结:配置之后的常用命令
列出虚拟环境列表:workon
新建虚拟环境:mkvirtualenv [虚拟环境名称] ->应该就是make的简写方便理解
启动/切换虚拟环境:workon [虚拟环境名称]
离开虚拟环境:deactivate
python为何需要虚拟环境--Python虚拟环境的安装和配置-virtualenv的更多相关文章
- Python虚拟环境的安装和配置-virtualenv与windows下多个python版本共存
Python虚拟环境的安装和配置-virtualenv与windows下多个python版本共存 windows下多个python版本共存 https://www.python.org/downloa ...
- Linux(4)- centos7安装python3、Linux下安装、配置virtualenv、确保开发环境的一致性、虚拟环境之virtualenvwrapper、vim
一.centos7安装python3 1.下载python3的源码包 下载地址:https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz cd ...
- Python黑帽编程1.1虚拟机安装和配置 Kali Linux 2016
Python黑帽编程1.1虚拟机安装和配置 Kali Linux 2016 0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Att ...
- Nginx+Python+uwsgi+Django的web开发环境安装及配置
Nginx+Python+uwsgi+Django的web开发环境安装及配置 nginx安装 nginx的安装这里就略过了... python安装 通常系统已经自带了,这里也略过 uwsgi安装 官网 ...
- Python入门:Anaconda和Pycharm的安装和配置
Python入门:Anaconda和Pycharm的安装和配置 转自:https://www.cnblogs.com/yuxuefeng/articles/9235431.html 子曰:“工欲善其 ...
- 【转】Python入门:Anaconda和Pycharm的安装和配置
子曰:“工欲善其事,必先利其器.”学习Python就需要有编译Python程序的软件,一般情况下,我们选择在Python官网下载对应版本的Python然后用记事本编写,再在终端进行编译运行即可,但是对 ...
- Python学习记录(一):Anaconda3的安装、配置与使用
简单说下为啥要创建Python虚拟环境呢? 不同的Python工程中用到的包不尽相同,相同包的版本也可能不一样,一种方法是使得各个环境相对独立. 假如说某一个环境崩了,直接remove掉就可以了,不会 ...
- python在windows和linux下的安装和配置
一.windows下安装python3.6 安装编辑器:Ecplise+pydev插件 Eclipse是写JAVA的IDE, 这样就可以通用了,学习代价小. 学会了Eclipse, 以后写Pytho ...
- Ubuntu安装及配置virtualenv,virtualenvwrapeer
安装virtualenv pip install virtualenv 如果下载较慢,可以添加豆瓣源: pip install -i https://pypi.douban.com/simple/ v ...
随机推荐
- OpenNebula 4.0 Beta 新特性介绍
http://blog.chinaunix.net/uid-20940095-id-3561376.html 2013年3月26号,OpenNebula社区发布了OpenNebula 4.0 Beta ...
- noi2729 Blah数集
Blah数集 大数学家高斯小时候偶然间发现一种有趣的自然数集合Blah,对于以a为基的集合Ba定义如下: (1) a是集合Ba的基,且a是Ba的第一个元素: (2)如果x在集合Ba中,则2x+1和3x ...
- 改善C#公共程序类库质量的10种方法(转)
出处:http://www.cnblogs.com/JamesLi2015/p/3140897.html 最近重构一套代码,运用以下几种方法,供参考. 1 公共方法尽可能的使用缓存 public s ...
- java.lang.ClassCastException: com.liuyang.annocation.UserAction cannot be cast to com.liuyang.annocation2.UserAction at com.liuyang.annocation2.App.test
java.lang.ClassCastException: com.liuyang.annocation.UserAction cannot be cast to com.liuyang.annoca ...
- 大佬福利之在你眼中 Web 3.0 是什么?(转)
web 3.0 Web 3.0一词包含多层含义,用来概括互联网发展过程中某一阶段可能出现的各种不同的方向和特征.Web 3.0 充满了争议和分歧,它到底应该什么样?具体的标志点又是什么? Web 2. ...
- strerror线程安全分析
导读 strerror是否线程安全了? 1 errno是否线程安全? 1 附1:strerror源码 2 附2:__strerror_r源码 2 strerror是否线程安全了? 答案是NO,但它有个 ...
- zrender源码分析4--初始化Painter绘图模块2
入口2: 渲染 // zrender_demo.html zr.render(); // zrender.js /** * 渲染 * * @param {Function} callback 渲染结束 ...
- How To Start Building Spatially Aware Apps With Google’s Project Tango
How To Start Building Spatially Aware Apps With Google’s Project Tango “Tango can enable a whole new ...
- 编写高质量代码改善C#程序的157个建议——建议150:使用匿名方法、Lambda表达式代替方法
建议150:使用匿名方法.Lambda表达式代替方法 方法体如果过小(如小于3行),专门为此定义一个方法就会显得过于繁琐.比如: static void SampeMethod() { List< ...
- 编写高质量代码改善C#程序的157个建议——建议123:程序集不必与命名空间同名
建议123:程序集不必与命名空间同名 程序集一般会和命名空间同名,但这并不是必须的.事实上,不同名的命名空间和程序集是很常见的. 程序集表示的是一种物理上的分组,而命名空间是逻辑上的分组,两者没有必然 ...