利用Anaconda完美解决Python 2与python 3的共存问题


Posted in Python onMay 25, 2017

前言

现在Python3 被越来越多的开发者所接受,同时让人尴尬的是很多遗留的老系统依旧运行在 Python2 的环境中,因此有时你不得不同时在两个版本中进行开发,调试。

如何在系统中同时共存 Python2 和 Python3 是开发者不得不面对的问题,一个利好的消息是,Anaconda 能完美解决Python2 和 Python3 的共存问题,而且在 Windows 平台经常出现安装依赖包(比如 MySQL-python)失败的情况也得以解决。

Anaconda 是什么?

Anaconda 是 Python 的一个发行版,如果把 Python 比作 Linux,那么 Anancoda 就是 CentOS 或者 Ubuntu。它解决了Python开发者的两大痛点。

  • 第一:提供包管理,功能类似于 pip,Windows 平台安装第三方包经常失败的场景得以解决。
  • 第二:提供虚拟环境管理,功能类似于 virtualenv,解决了多版本Python并存问题。

下载 Anaconda安装包

官网下载地址:https://www.continuum.io/downloads

本地下载地址:

Anaconda3 4.3.1 Python 3.6 for windows 64位: https://3water.com/softs/556361.html

Anaconda3 4.3.1 Python 3.6 for windows 32位: https://3water.com/softs/556363.html

Anaconda3 4.3.1 Python 3.6 for linux   32位: https://3water.com/softs/556380.html

Anaconda3 4.3.1 Python 3.6 for linux   64位: https://3water.com/softs/556392.html

我们选择 Python3.6 版本的安装包,下载完成后直接安装,安装过程选择默认配置即可,大约需要1.8G的磁盘空间。

conda 是 Anaconda 下用于包管理和环境管理的命令行工具,是 pip 和 vitualenv 的组合。安装成功后 conda 会默认加入到环境变量中,因此可直接在命令行窗口运行 conda 命令

如果你熟悉 virtualenv,那么上手 conda 非常容易,不熟悉 virtulenv 的也没关系,它提供的命令就几个,非常简单。我们可以利用 conda 的虚拟环境管理功能在 Python2 和 Python3 之间自由切换。

多版本切换

# 基于 python3.6 创建一个名为test_py3 的环境
conda create --name test_py3 python=3.6 

# 基于 python2.7 创建一个名为test_py2 的环境
conda create --name test_py2 python=2.7

# 激活 test 环境
activate test_py2 # windows
source activate test_py2 # linux/mac

# 切换到python3
activate test_py3

更多命令,可查看帮助 conda -h

包管理工具

conda 的包管理功能是对 pip 的一种补充,如果当前已经激活了某个Python环境,那么就可以在当前环境开始安装第三方包。

# 安装 matplotlib 
conda install matplotlib
# 查看已安装的包
conda list 
# 包更新
conda update matplotlib
# 删除包
conda remove matplotlib

对于那些用 pip 无法安装成功的模块你都可以尝试用 conda 来安装,如果用 conda 找不到相应的包,当然你继续选择 pip 来安装包也是没问题的。

提高下载速度

Anaconda 的镜像地址默认在国外,用 conda 安装包的时候会很慢,目前可用的国内镜像源地址是清华大学提供的。修改 ~/.condarc (Linux/Mac) 或 C:\Users\当前用户名.condarc (Windows) 配置

channels:
 - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
 - defaults
show_channel_urls: true

除此之外,你也可以把 pip 的镜像源地址也换成国内的,豆瓣源速度比较快。修改 ~/.pip/pip.conf (Linux/Mac) 或 C:\Users\当前用户名\pip\pip.ini (Windows) 配置:

[global]
trusted-host = pypi.douban.com
index-url = http://pypi.douban.com/simple

总结

以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python实现360的字符显示界面
Feb 21 Python
python实现去除下载电影和电视剧文件名中的多余字符的方法
Sep 23 Python
Python解析nginx日志文件
May 11 Python
python操作字典类型的常用方法(推荐)
May 16 Python
python中MethodType方法介绍与使用示例
Aug 03 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
Jun 19 Python
python查看文件大小和文件夹内容的方法
Jul 08 Python
django框架模板语言使用方法详解
Jul 18 Python
django云端留言板实例详解
Jul 22 Python
Python单元测试工具doctest和unittest使用解析
Sep 02 Python
python实现逆滤波与维纳滤波示例
Feb 26 Python
Python读取JSON数据操作实例解析
May 18 Python
Python实现的简单dns查询功能示例
May 24 #Python
Python向日志输出中添加上下文信息
May 24 #Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
May 24 #Python
Python简单生成8位随机密码的方法
May 24 #Python
python中利用xml.dom模块解析xml的方法教程
May 24 #Python
Python实现简单过滤文本段的方法
May 24 #Python
django框架如何集成celery进行开发
May 24 #Python
You might like
兼容性比较好的PHP生成缩略图的代码
2011/01/12 PHP
PHP连接MSSQL方法汇总
2016/02/05 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
2016/04/30 PHP
详谈PHP面向对象中常用的关键字和魔术方法
2017/02/04 PHP
浅谈PHP中的面向对象OOP中的魔术方法
2017/06/12 PHP
得到文本框选中的文字,动态插入文字的js代码
2007/03/07 Javascript
List Installed Hot Fixes
2007/06/12 Javascript
javascript XML数据显示为HTML一例
2008/12/23 Javascript
firefox下jQuery UI Autocomplete 1.8.*中文输入修正方法
2012/09/19 Javascript
js获取RadioButtonList的Value/Text及选中值等信息实现代码
2013/03/05 Javascript
js四舍五入数学函数round使用实例
2014/05/09 Javascript
jQuery实现的多屏图像图层切换效果实例
2015/05/07 Javascript
javascript实现日期时间动态显示示例代码
2015/09/08 Javascript
jquery仿苹果的时间/日期选择效果
2017/03/08 Javascript
Angular2自定义分页组件
2017/04/19 Javascript
vue实现app页面切换动画效果实例
2017/05/23 Javascript
angularJs中datatable实现代码
2017/06/03 Javascript
Vue学习笔记进阶篇之多元素及多组件过渡
2017/07/19 Javascript
vue-router配合ElementUI实现导航的实例
2018/02/11 Javascript
webpack下实现动态引入文件方法
2018/02/22 Javascript
vue中v-for通过动态绑定class实现触发效果
2018/12/06 Javascript
Nuxt.js实战和配置详解
2019/08/05 Javascript
JavaScript使用setTimeout实现倒计时效果
2021/02/19 Javascript
[36:33]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.29
2020/12/02 DOTA
打开电脑上的QQ的python代码
2013/02/10 Python
Python动态加载模块的3种方法
2014/11/22 Python
Python基于scrapy采集数据时使用代理服务器的方法
2015/04/16 Python
详细介绍Python中的偏函数
2015/04/27 Python
详解Django框架中用context来解析模板的方法
2015/07/20 Python
python3中获取文件当前绝对路径的两种方法
2018/04/26 Python
Python input函数使用实例解析
2019/11/22 Python
入党介绍人评语
2014/05/06 职场文书
物理系毕业生自荐书
2014/06/13 职场文书
2015年采购部工作总结
2015/04/23 职场文书
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android
python和C/C++混合编程之使用ctypes调用 C/C++的dll
2022/04/29 Python