python——虚拟环境之virtualenv(windows10,64位)
1 问题
当我们拥有两个甚至多个项目A、B、C......,各个项目正常运行需求的python运行环境都不相同。而默认情况下,不管哪个项目,使用的都是全局的Python环境。上述情况,造成的问题就是,A、B、C等项目,只能运行一个;如果运行另一个,必须安装与之匹配的库版本。
2 解决思路
创建一个完全独立的局部python环境(或叫做虚拟环境)。在此环境中,安装所有与某个项目相匹配库即可。总之,一个项目,使用一个虚拟环境;互相之间,没有干扰。
3 具体解决步骤
3.1 安装第三方包virtualenv
当电脑里面有多个版本的python的时,可以指定版本来进行安装。代码见下:
pip install virtualenv
或者
python3 -m pip install virtualenv
3.2 virtualenv的简单应用
3.2.1 创建一个局部的隔离的虚拟环境
打开命令提示符,cd进入到项目myproject(必须根据自己的项目进行修改)所在路径,创建项目myproject的虚拟环境。
(1) 语法
virtualenv 虚拟环境名称
例如:virtualenv ENV
(2) 可选参数
(i) -p :指明Python版本创建,到时候就使用此版本的解释器,默认是你安装viretual 包的时候,用的python解释器
例如:virtualenv -p C:\Python27\python.exe ENV
(ii) --system-site-packages:继承系统的三方库。到时候,检索库的时候,也会到系统的三方库中查找,如果不加此项,到时候只会在当前的虚拟环境中找
例如:virtualenv --system-site-packages ENV
创建完成后,会在myproject文件夹下自动生成一个ENV文件夹,效果见下图:

ENV文件夹里面的内容见下图:

3.2.2 激活虚拟环境
(1) 语法
打开命令提示符,进入到虚拟环境目录/scripts文件夹中,输入activate.bat
(2) 界面效果

(3) 作用效果
在环境的激活状态,后续所有的操作都是基于这个虚拟的Python环境包的安装和卸载。代码的执行,比如:pip install 包名(如requests)
如果不激活创建的虚拟环境,到时候会被安装在全局Python环境中。激活后,则会安装在虚拟环境中。
3.2.3 在激活状态下的操作
操作三方库、执行py文件等等
注意:以上所有操作,均作用在被激活的虚拟环境中
3.2.4 退出虚拟环境
(1) 语法
进入到虚拟环境目录/scripts文件夹中,输入命令deactivate.bat
(2) 界面效果

(3) 作用效果
退出后,所有后续操作,又会再次的作用于全局的Python环境中
3.2.5 删除虚拟环境
直接把项目文件目录下的ENV文件夹删除即可。
更多使用命令见官网:https://virtualenv.pypa.io/en/latest/userguide/
4 补充
以后把项目给别人的时候,就可以连同虚拟环境和项目一起拷贝给别人。但是当虚拟环境非常大的时候,这种方法显然不实际。这就需要用到另一种方法了。
即在虚拟环境中,冻结依赖需求文本,把项目和依赖需求文本给别人。
python——虚拟环境之virtualenv(windows10,64位)的更多相关文章
- python——python3.6环境搭建(Windows10,64位)
1.python软件资源下载 1.1 打开python官网地址:https://www.python.org 1.2 根据自己电脑的设置选择下载合适的python3.6.2 1.3 此处选择windo ...
- Windows10 64位部署odoo12开发环境
预装Windows10 64位家庭版电脑一台 2019年7月 安装Python,这里的版本选择上有个坑,不要装最新的Python 3.7.x,原因是odoo12依赖pillow 4.0.0库,而这个4 ...
- Windows10 64位下安装TensorFlow谷歌人工智能系统已官方原生支持
Windows10 64位下安装TensorFlow谷歌人工智能系统已官方原生支持 GitHub - tensorflow/tensorflow: Computation using data flo ...
- (zhuan)Python 虚拟环境:Virtualenv
Python 虚拟环境:Virtualenv zhuanzi: http://liuzhijun.iteye.com/blog/1872241 virtualenv virtualenv用于创建独立的 ...
- [转]windows10 64位环境下安装mysql5.7.17
今天以zip模式在windows10 64位环境下安装mysql5.7,到最后一步提示mysql服务无法启动. 安装步骤如下: 1.配置环境变量 我的电脑->属性->高级->环境变量 ...
- Windows10 64位 安装 Docker
本文主要介绍Docker在Windows下的安装.关于Docker的介绍和文档在其官网中可以找到:http://www.docker.com .安装环境:Windows10 64位. Docker引擎 ...
- Windows10 64位安装DB2数据库
安装前准备 : 系统:Windows10 64位 DB2 v9.5下载地址(迅雷):http://big3.ddooo.com/db2_93661.rar 选择安装包解压位置,并复制记住: 去到解压的 ...
- Windows10 64位解决无法使用Microsoft.Jet.OLEDB.4.0的方法
本机软件环境:Windows10 64位+Office2003 (32位) ============================================= 1.下载 ACE2010的驱动, ...
- 2 pygraphviz在windows10 64位下的安装问题(反斜杠的血案)
可以负责任的说,这篇文档是windows10安装pygraphviz中,在中文技术网站中最新的文档,没有之一.是自己完全结合各种问题,包括调试等,总结出来的. 问题来源:主要是可视化RvNN网络的树结 ...
- python 虚拟环境操作 virtualenv +virtualenvwrapper
Window 下创建python的虚拟环境 下载工具 pip install virtualenv 创建虚拟环境目录 # 注意此命令创建的虚拟环境目录是在当前目录下 virtualenv testen ...
随机推荐
- Jstl标签汇总
JSTL的核心标签库标签共13个,使用这些标签能够完成JSP页面的基本功能,减少编码工作. 从功能上可以分为4类:表达式控制标签.流程控制标签.循环标签.URL操作标签. (1)表达式控制标签:ou ...
- Java并发编程笔记之PriorityBlockingQueue源码分析
JDK 中无界优先级队列PriorityBlockingQueue 内部使用堆算法保证每次出队都是优先级最高的元素,元素入队时候是如何建堆的,元素出队后如何调整堆的平衡的? PriorityBlock ...
- spring的第一天
spring的第一天 ssm框架 spring Spring是什么? Spring是容器框架,用来配置(装)Bean,并且维护Bean之间的关系.其中Bean可以是Java中的任何一种对象,可以是J ...
- [Laravel] Laravel的基本使用
[Laravel] Laravel的基本HTTP路由 使用Laravel的基本路由,实现get请求响应,找到文件app/Http/routes.php 调用Route的静态方法get(),实现get响 ...
- hexo博客更新主题后上传Git操作
克隆主题: git clone https://github.com/SuperKieran/TKL.git _config.yml文件中主题改为新增主题 # Extensions ## Plugin ...
- 请输入经过encode编码的URL
美团门店映射: <?php $url = "http://manage.test.kdb.kudianbao.com/Branch/mt_mdysh1d"; $res = u ...
- Django Rest framework 之 版本
RESTful 规范 django rest framework 之 认证(一) django rest framework 之 权限(二) django rest framework 之 节流(三) ...
- Breeze 部署 Kubernetes 1.12.1高可用集群
今天看文章介绍了一个开源部署 K8S 的工具,有空研究下~ Github 地址: https://github.com/wise2c-devops/breeze
- CSS3属性-webkit-font-smoothing字体抗锯齿渲染
对字体进行抗锯齿渲染可以使字体看起来会更清晰舒服.在图标字体成为一种趋势的今天,抗锯齿渲染使用也越来越多. font-smoothing是非标准的CSS定义.它被列入标准规范的草案中,后由于某些原因从 ...
- 原生JS强大DOM选择器querySelector与querySelectorAll
在传统的 JavaScript 开发中,查找 DOM 往往是开发人员遇到的第一个头疼的问题,原生的 JavaScript 所提供的 DOM 选择方法并不多,仅仅局限于通过 tag, name, id ...