Virtualenv入门基础教程
本文目录:
[TOC]
虚拟环境简介
VirtualEnv用于在一台机器上创建多个独立的Python虚拟运行环境,多个Python环境相互独立,互不影响,它能够:
在没有权限的情况下安装新套件
不同应用可以使用不同的套件版本
套件升级不影响其他应用
虚拟环境是在Python解释器上的一个私有复制,你可以在一个隔绝的环境下安装packages,不会影响到你系统中全局的Python解释器。
虚拟环境非常有用,因为它可以防止系统出现包管理混乱和版本冲突的问题。为每个应用程序创建一个虚拟环境可以确保应用程序只能访问它们自己使用的包,从而全局解释器只作为一个源且依然整洁干净去更多的虚拟环境。另一个好处是,虚拟环境不需要管理员权限。
安装Virtualenv
大多数Linux发行版都提供一个virtualenv包。例如,Ubuntu用户就可以使用以下命令进行安装:
$ sudo apt-get install python-virtualenv
如果你使用的是Mac OSX,你可以使用 easy_install 安装virtualenv:
$ sudo easy_install virtualenv
如果你使用的是Microsoft Windows或者是任何没有提供官方virtualenv包的操作系统,接下来你会有一个稍微复杂的安装过程。
使用你的web浏览器,导航到 https://bitbucket.org/pypa/setuptools/ ,setuptools安装程序的主页,在"Downloads"栏目找到链接下载一个叫 ez_setup.py 安装程序脚本。保存这个文件到你电脑的临时文件夹中,然后在那个目录下运行以下命令:
$ python ez_setup.py $ easy_install virtualenv
注:前一个命令必须由管理员权限的账户发出。在Microsoft Windows,以管理员身份选项运行命令提示符窗口。在基于Unix的系统中,两个安装命令前面必须加上 sudo 或作为 root 用户执行。一旦安装完毕,virtualenv程序可以通过普通账户执行。
创建虚拟环境
安装好之后,我们就可以使用virtualenv命令创建Python虚拟环境了。这个命令有一个需要的参数:虚拟环境的名称。一个指定名称的文件夹和在里面的、与虚拟环境相关的所有文件会在当前目录下被创建。一般给虚拟环境约定命名为venv:
$ virtualenv venv
New python executable in venv/bin/python2.7
Also creating executable in venv/bin/python
Installing setuptools............done.
Installing pip...............done.
现在你有一个venv文件夹和一个全新的虚拟环境,包含一个私有的Python解释器。使用虚拟环境的时候,你必须“激活”它。如果你是使用bash命令行工具(Linux和Mac OSX用户),你可以使用这个命令激活虚拟环境:
$ source venv/bin/activate
如果你是使用Microsoft Windows,激活命令是:
> venv\Scripts\activate
当虚拟环境被激活了,Python解释器的位置会被添加到 PATH 中,但是这个改动并不是永久的;它只影响当前命令会话。提醒一下,你激活了虚拟环境,该激活命令会将环境的名称包含在命令提示符里面:
(venv)$
当你在虚拟环境中完成工作并想回到全局Python解释器,在命令提示符中输入 deactivate 就可以了。
使用pip安装python包
大多数的Python包是通过 pip 程序安装的,在创建虚拟环境的时候virtualenv会自动添加进去。当一个虚拟环境被激活后,pip程序的位置会被添加到 PATH 中。
注:如果你使用pyvenv创建虚拟环境在Python 3.3中,则必须手动安装pip。安装指令在pip网站上可以找到。在Python 3.4下,pyvenv会自动安装pip。
比如,安装Flask到虚拟环境中,使用下面的命令:
(venv)$ pip install flask
通过这个命令,Flask和它的依赖集都会安装到虚拟环境中。你可以验证Flask是否正确安装通过启动Python解释器并试着导入它:
(venv)$ python
>>> import flask
>>>
如果需要安装的包比较多的时候,这样做会比较繁琐,我们还有一键安装的方法。首先新建一个文本文件,如:requirements.txt,然后将你需要安装的包名保存到该文件中(根据自己的需要),如下:
Babel==1.3
Flask==0.10.1
Flask-Login==0.2.7
Flask-SQLAlchemy==1.0
Flask-WTF==0.9.3
Jinja2==2.7.1
SQLAlchemy==0.8.2
WTForms==1.0.5
Werkzeug==0.9.4
psycopg2==2.5.1
...
最后你只需要输入以下命令,所有需要的包就可以全部安装好了:
(venv)$ pip install -r requirements.txt
如果没有出现错误,祝贺你:安装成功了。
若要查看当前环境安装了哪些包,可以使用下面的命令:
(venv)$ pip freeze
Comments !
Virtualenv入门基础教程的更多相关文章
- HTML入门基础教程相关知识
HTML入门基础教程 html是什么,什么是html通俗解答: html是hypertext markup language的缩写,即超文本标记语言.html是用于创建可从一个平台移植到另一平台的超文 ...
- jQuery Mobile 入门基础教程
jQuery Mobile是jQuery在手机上和平板设备上的版本.jQuery Mobile 不仅会给主流移动平台带来jQuery核心库,而且会发布一个完整统一的jQuery移动UI框架. jQue ...
- Python学习入门基础教程(learning Python)--5.6 Python读文件操作高级
前文5.2节和5.4节分别就Python下读文件操作做了基础性讲述和提升性介绍,但是仍有些问题,比如在5.4节里涉及到一个多次读文件的问题,实际上我们还没有完全阐述完毕,下面这个图片的问题在哪呢? 问 ...
- 【转】Gulp入门基础教程
Gulp入门基础教程 原文在此 前言最近流行前端构建工具,苦于之前使用Grunt,代码很难阅读,现在出了Gulp, 真是摆脱了痛苦.发现了一篇很好的Gulp英文教程,整理翻译给大家看看. 为什么使用G ...
- HBase入门基础教程之单机模式与伪分布式模式安装(转)
原文链接:HBase入门基础教程 在本篇文章中,我们将介绍Hbase的单机模式安装与伪分布式的安装方式,以及通过浏览器查看Hbase的用户界面.搭建HBase伪分布式环境的前提是我们已经搭建好了Had ...
- HBase入门基础教程 HBase之单机模式与伪分布式模式安装
在本篇文章中,我们将介绍Hbase的单机模式安装与伪分布式的安装方式,以及通过浏览器查看Hbase的用户界面.搭建HBase伪分布式环境的前提是我们已经搭建好了Hadoop完全分布式环境,搭建Hado ...
- 经典Spring入门基础教程详解
经典Spring入门基础教程详解 https://pan.baidu.com/s/1c016cI#list/path=%2Fsharelink2319398594-201713320584085%2F ...
- 超实用的Flask入门基础教程,新手必备!
Flask入门基础教程 Flask简介 Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活.轻便.安全且容易上手.它可以很好地结合MVC模式进行开发,开发人员分工合 ...
- python程序入门 基础教程
1.VSCode基础使用+VSCode调试python程序入门 2.pip 安装 3.scrapy安装 4.python解析xml
随机推荐
- 关于<marquee>、<form>、input中的<text>、<password>、<hidden>、<wenbenkuang>、<reset>、<image>、<submit>、<radio>、<checkbox>以及<select><iframe src>的用法
<html> <head> <meta charset="UTF-8"> <title></ ...
- 在HTTP页面输入数据,Chrome 70将显示红色不安全警告
2018年10月17日,Chrome 70版本正式发布,该版本更新多项安全功能,再次升级对HTTP页面的不安全警告样式.当用户在HTTP页面输入数据时,Chrome 70将显示醒目的红色不安全警告,让 ...
- sublime text3安装js提示的插件
今天安装Sublime Text3的js插件,在网上查了很多资料,为了方便以后看,写一个安装插件的总结和方法. 要安装js相关的插件,就要先安装一个Package Control(插件管理器)的插件, ...
- linux--rbtree 解惑 insert
rbtree.txt 中insert 操作,为何用2级指针?? 2级指针用的还是不熟.心虚. Inserting data in the tree involves first searching f ...
- jquery 将函数作为参数传递
等待执行函数 这是自己封装的layui的询问框 //------[询问框](parameter:执行函数的参数,f_name:执行函数,msg:提示,time:自动消失时间,btn_arr:按钮组,o ...
- [LeetCode] 860. 柠檬水找零 lemonade-change(贪心算法)
思路: 收到5块时,只是添加:收到十块时,添加10块,删除一个5块:收到20块时,添加20,删除一个10块一个5块,或者直接删除3个5块(注意:这里先删除5+10优于3个5) class Soluti ...
- git pull 跟 fetch的区别
今天在公司碰到个问题,公司不使用master分支作为主分支,而使用release分支作为主分支,这就碰到了个问题,也就是当clone一个项目下来的时候,如果master跟release分支有冲突,就不 ...
- STM32 HAL库使用中断实现串口接收不定长数据
以前用DMA实现接收不定长数据,DMA的方法接收串口助手的数据,全部没问题,不过如果接收模块返回的数据,而这些数据如果包含回车换行的话就会停止接收,例如接收:AT\r\nOK\r\n,就只能接收到AT ...
- js兼容性——获取当前浏览器窗口的宽高
通过onresize事件 window.onresize = function () { document.title = client().width + " "+ client ...
- js常用特效——选项卡效果
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...