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 相关文章推荐
Collatz 序列、逗号代码、字符图网格实例
Jun 22 Python
Python3多线程爬虫实例讲解代码
Jan 05 Python
30秒轻松实现TensorFlow物体检测
Mar 14 Python
python实时监控cpu小工具
Jun 21 Python
python中的turtle库函数简单使用教程
Jul 23 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
Jan 15 Python
Python安装Flask环境及简单应用示例
May 03 Python
pytorch中的自定义反向传播,求导实例
Jan 06 Python
使用Python第三方库pygame写个贪吃蛇小游戏
Mar 06 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
Jul 07 Python
Python通过队列来实现进程间通信的示例
Oct 14 Python
浅谈Python numpy创建空数组的问题
May 25 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中的实现trim函数代码
2007/03/19 PHP
PHP+mysql实现的三级联动菜单功能示例
2019/02/15 PHP
windows系统php环境安装swoole具体步骤
2021/03/04 PHP
云网广告中的代码,提示出错,大家找找
2006/11/21 Javascript
jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
2013/04/10 Javascript
捕获浏览器关闭、刷新事件不同情况下的处理方法
2013/06/02 Javascript
jquery Ajax 实现加载数据前动画效果的示例代码
2014/02/07 Javascript
node.js正则表达式获取网页中所有链接的代码实例
2014/06/03 Javascript
JavaScript输出当前时间Unix时间戳的方法
2015/04/06 Javascript
JS实现的车标图片提示效果代码
2015/10/10 Javascript
D3.js实现饼状图的方法详解
2016/09/21 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
easyui datagrid 表格中操作栏 按钮图标不显示的解决方法
2017/07/27 Javascript
js实现手机web图片左右滑动效果
2017/12/29 Javascript
微信小程序实现折叠展开效果
2018/07/19 Javascript
Js通过AES加密后PHP用Openssl解密的方法
2019/07/12 Javascript
微信小程序实现手势滑动卡片效果
2019/08/26 Javascript
实例分析javascript中的异步
2020/06/02 Javascript
Python最基本的输入输出详解
2015/04/25 Python
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
python使用matplotlib绘图时图例显示问题的解决
2017/04/27 Python
vscode 远程调试python的方法
2017/12/01 Python
Flask实现图片的上传、下载及展示示例代码
2018/08/03 Python
TFRecord格式存储数据与队列读取实例
2020/01/21 Python
Django实现从数据库中获取到的数据转换为dict
2020/03/27 Python
Python flask框架如何显示图像到web页面
2020/06/03 Python
Python drop方法删除列之inplace参数实例
2020/06/27 Python
Python使用pickle进行序列化和反序列化的示例代码
2020/09/22 Python
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
html5指南-6.如何创建离线web应用程序实现离线访问
2013/01/07 HTML / CSS
美国一家主营日韩美妆护肤品的在线商店:iMomoko
2016/09/11 全球购物
苹果Mac升级:MacSales.com
2017/11/20 全球购物
水果花束:Fruit Bouquets
2017/12/20 全球购物
全球最大的户外用品零售商之一:The House
2018/06/12 全球购物
基层党员公开承诺书
2014/05/29 职场文书
2015年安全生产目标责任书
2015/01/29 职场文书