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实现扫描局域网活动ip(扫描在线电脑)
Apr 28 Python
Python3中的2to3转换工具使用示例
Jun 12 Python
详解python 字符串和日期之间转换 StringAndDate
May 04 Python
Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法
Feb 18 Python
python实现黑客字幕雨效果
Jun 21 Python
python创造虚拟环境方法总结
Mar 04 Python
详解使用Python下载文件的几种方法
Oct 13 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
Jan 23 Python
Pyspark获取并处理RDD数据代码实例
Mar 27 Python
520使用Python实现“我爱你”表白
May 20 Python
Pytest实现setup和teardown的详细使用详解
Apr 17 Python
使用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())
May 14 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+javascript的日历控件
2009/11/19 PHP
PHP生成Flash动画的实现代码
2010/03/12 PHP
PHP借助phpmailer发送邮件
2015/05/11 PHP
手把手编写PHP框架 深入了解MVC运行流程
2016/09/19 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
2019/10/30 PHP
js不能跳转到上一页面的问题解决方法
2013/03/01 Javascript
AngularJs定制样式插入到ueditor中的问题小结
2016/08/01 Javascript
js处理层级数据结构的方法小结
2017/01/17 Javascript
javascript基于定时器实现进度条功能实例
2017/10/13 Javascript
Vuejs中使用markdown服务器端渲染的示例
2017/11/22 Javascript
vue实现通讯录功能
2018/07/14 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
iphone刘海屏页面适配方法
2019/05/07 Javascript
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
盘点提高 Python 代码效率的方法
2014/07/03 Python
用Python实现换行符转换的脚本的教程
2015/04/16 Python
python xml解析实例详解
2016/11/14 Python
基于Linux系统中python matplotlib画图的中文显示问题的解决方法
2017/06/15 Python
Python线性方程组求解运算示例
2018/01/17 Python
Python3.4 tkinter,PIL图片转换
2018/06/21 Python
对python中GUI,Label和Button的实例详解
2019/06/27 Python
Django后端接收嵌套Json数据及解析详解
2019/07/17 Python
基于Python实现扑克牌面试题
2019/12/11 Python
Numpy与Pytorch 矩阵操作方式
2019/12/27 Python
Python实现桌面翻译工具【新手必学】
2020/02/12 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
Python计算信息熵实例
2020/06/18 Python
三星俄罗斯授权在线商店:Samsung俄罗斯
2019/09/28 全球购物
Agoda中文官网:安可达(低价预订全球酒店)
2021/01/18 全球购物
Linux中如何设置Java环境变量(Ubuntu)
2016/07/24 面试题
金融专业毕业生推荐信
2013/11/26 职场文书
人事专员工作职责
2014/02/22 职场文书
小学安全汇报材料
2014/08/14 职场文书
大连星海广场导游词
2015/02/10 职场文书
入党申请书怎么写?
2019/06/21 职场文书
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
2021/04/03 Python