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的Django框架部署的一些建议
Apr 09 Python
python实现的文件同步服务器实例
Jun 02 Python
Python简单生成随机数的方法示例
Mar 31 Python
python 读取目录下csv文件并绘制曲线v111的方法
Jul 06 Python
TensorFlow实现模型评估
Sep 07 Python
Python补齐字符串长度的实例
Nov 15 Python
Linux CentOS Python开发环境搭建教程
Nov 28 Python
python BlockingScheduler定时任务及其他方式的实现
Sep 19 Python
开启Django博客的RSS功能的实现方法
Feb 17 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
May 26 Python
Python 如何测试文件是否存在
Jul 31 Python
Python爬虫基础之初次使用scrapy爬虫实例
Jun 26 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
WAR3重制版DOTA 5V5初体验
2020/04/09 DOTA
php 读取文件乱码问题
2010/02/20 PHP
PHP得到mssql的存储过程的输出参数功能实现
2012/11/23 PHP
PHP 登录记住密码实现思路
2013/05/07 PHP
php使用curl模拟登录后采集页面的例子
2013/11/04 PHP
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
2014/06/21 Servers
CI框架实现框架前后端分离的方法详解
2016/12/30 PHP
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
jquery表单验证使用插件formValidator
2012/11/10 Javascript
把字符串按照特定的字母顺序进行排序的js代码
2014/01/28 Javascript
两种JS实现屏蔽鼠标右键的方法
2020/08/20 Javascript
javascript 定时器工作原理分析
2016/12/03 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
2017/02/09 Javascript
angular实现页面打印局部功能的思考与方法
2018/04/13 Javascript
JavaScript之实现一个简单的Vue示例
2019/01/17 Javascript
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
2020/02/01 jQuery
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
[04:44]DOTA2英雄梦之声_第12期_矮人直升机
2014/06/21 DOTA
在服务器端实现无间断部署Python应用的教程
2015/04/16 Python
python中for语句简单遍历数据的方法
2015/05/07 Python
利用Python命令行传递实例化对象的方法
2016/11/02 Python
tensorflow mnist 数据加载实现并画图效果
2020/02/05 Python
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
外贸英语毕业生自荐信
2013/11/14 职场文书
商学院大学生求职的自我评价
2014/03/12 职场文书
公证书标准格式
2014/04/10 职场文书
党风廉设责任书
2014/04/16 职场文书
2014年建筑工程工作总结
2014/12/03 职场文书
2014年为民办实事工作总结
2014/12/20 职场文书
二手车转让协议书
2015/01/29 职场文书
幼儿园开学温馨提示
2015/07/15 职场文书
幼儿园2016年圣诞活动总结
2016/03/31 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书
Golang二维切片初始化的实现
2021/04/08 Golang
Python基础之元类详解
2021/04/29 Python
Vue+TypeScript中处理computed方式
2022/04/02 Vue.js