Python 中 Virtualenv 和 pip 的简单用法详解


Posted in Python onAugust 18, 2017

本文介绍了Python 中 Virtualenv 和 pip 的简单用法详解,分享给大家,具体如下:

0X00 安装环境

我们在 Python 开发和学习过程中需要用到各种库,然后在各个不同的项目和作品里可能用的版本还不一样,正因为有这种问题的存在才催生了virtualenv的诞生。virtualenv 可以在电脑上创建一个虚拟环境,可以针对每一个项目创建一个虚拟环境,这样就不用担心各个不同的项目用不同版本的库的时候出现的冲突了。 下面的内容只适用于 Linux/OSX,未经 Windows 环境测试

要使用这个功能还是需要安装,安装 virtualenv 肯定就得直接用 pip 安装了,pip install virtualenv就可以轻松装上了。装好之后我们就可以来测试一波了。

0X01 初始化一个空的工作环境

首先在一个空的环境中执行virtualenv --no-site-packages test_env,就是在当前目录创建一个名为 test_env 的虚拟环境。这里--no-site-packages参数是指不从全局的 Python 中携带任何第三方库。就比如说你在全局 Python 中安装了 xxx 库,在不用这个参数来创建虚拟环境时,虚拟环境中也会带着这个库;但是加上了这个参数,虚拟环境中就是一个纯净的 Python,没有这些库。

root in ~ λ virtualenv --no-site-packages test_env
New python executable in /root/test_env/bin/python
Please make sure you remove any previous custom paths from your /root/.pydistutils.cfg file.
Installing setuptools, pip, wheel...done.

然后可以通过source test_env/bin/activate可以进入(激活)到这个虚拟环境里去。进入到虚拟环境中之后,通常情况下你的命令提示符最前面会出现一个括号,括号里面写着你虚拟环境的名字。

这里说是虚拟环境,其实一切都是真实的。只是说你在激活了这个环境,在这个环境下用 pip 安装的库都放在 test_env 中。

也可以通过deactivate来退出这个环境。

0X02 批量导出和安装库

比如我们开发了一个项目,里面用到了 pymongo/requests/flask/pymysql 等等等等十几二十个库,还要指定特定的版本,那么当把一个项目从机器 A 迁移到机器 B 的时候就会很麻烦。需要手动记录每个库和版本,还要逐个去安装,非常麻烦。所以针对这个问题 pip 已经有了非常完善的解决方案。

(test_env) root in ~ λ pip freeze > requirements.txt # 导出已安装的库

这个命令可以导出当前环境中安装好的所有第三方库,并且是以一个标准的格式导出的。所以一般一个标准的 python 项目的根目录都会有这个名为requirements.txt的依赖文件。

既然可以一次性导出,那么必然可以一次性安装喽。通过这种方式就可以将上面导出的特定版本的所有库一次性全装上。配合 virtualenv 可以快速的部署一个 Python 项目,并且不会搞乱其他的 Python 项目环境。

(test_env_1) root in ~ λ pip install -r requirements.txt

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python获取指定网页上所有超链接的方法
Apr 04 Python
Python实现信用卡系统(支持购物、转账、存取钱)
Jun 24 Python
python Pandas 读取txt表格的实例
Apr 29 Python
修改默认的pip版本为对应python2.7的方法
Nov 06 Python
linux安装python修改默认python版本方法
Mar 31 Python
python实现视频分帧效果
May 31 Python
python安装virtualenv虚拟环境步骤图文详解
Sep 18 Python
python装饰器练习题及答案
Nov 01 Python
python3正则模块re的使用方法详解
Feb 11 Python
Python面向对象魔法方法和单例模块代码实例
Mar 25 Python
python爬取youtube视频的示例代码
Mar 03 Python
解决python存数据库速度太慢的问题
Apr 23 Python
Python3编程实现获取阿里云ECS实例及监控的方法
Aug 18 #Python
浅谈django开发者模式中的autoreload是如何实现的
Aug 18 #Python
Python绑定方法与非绑定方法详解
Aug 18 #Python
python字典DICT类型合并详解
Aug 17 #Python
Python时间的精准正则匹配方法分析
Aug 17 #Python
Python实现运行其他程序的四种方式实例分析
Aug 17 #Python
python进阶_浅谈面向对象进阶
Aug 17 #Python
You might like
PHP静态新闻列表自动生成代码
2007/06/14 PHP
php 无限极分类
2008/03/27 PHP
黑夜路人出的几道php笔试题
2009/08/04 PHP
php is_file 判断给定文件名是否为一个正常的文件
2010/05/10 PHP
php设计模式 Interpreter(解释器模式)
2011/06/26 PHP
基于PHP实现等比压缩图片大小
2016/03/04 PHP
PHP文件操作实例总结
2016/09/27 PHP
利用switch语句进行多选一判断的实例代码
2016/11/14 PHP
PHP用户注册邮件激活账户的实现代码
2017/05/31 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
2017/08/10 PHP
七种PHP开发环境搭建工具
2020/06/28 PHP
js判断变量是否空值的代码
2008/10/26 Javascript
javascript处理table表格的代码
2010/12/06 Javascript
JQuery实现鼠标移动到图片上显示边框效果
2014/01/09 Javascript
jquery单行文字向上滚动效果示例
2014/03/06 Javascript
jQuery循环动画与获取组件尺寸的方法
2015/02/02 Javascript
浅谈jQuery中replace()方法
2015/05/13 Javascript
js绘制圆形和矩形的方法
2015/08/05 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
ES6中非常实用的新特性介绍
2016/03/10 Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
2018/05/03 jQuery
Webpack中publicPath路径问题详解
2018/05/03 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
vue项目中引入vue-datepicker插件的详解
2019/05/14 Javascript
如何使用proxy实现一个简单完整的MVVM库的示例代码
2019/09/17 Javascript
vue+高德地图实现地图搜索及点击定位操作
2020/09/09 Javascript
[45:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第二场 6.2
2018/06/04 DOTA
[01:02:06]LGD vs Mineski Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
[01:32]寻找你心中的那团火 DOTA2 TI9火焰传递活动今日开启
2019/05/16 DOTA
python OpenCV学习笔记直方图反向投影的实现
2018/02/07 Python
Python图像处理库PIL中图像格式转换的实现
2020/02/26 Python
详解HTML5 window.postMessage与跨域
2017/05/11 HTML / CSS
Cecil Mode法国在线商店:女性时尚
2021/01/08 全球购物
研修心得体会
2014/09/04 职场文书
2016年情人节广告语
2016/01/28 职场文书
python使用pymysql模块操作MySQL
2021/06/16 Python