利用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中数据解析
May 05 Python
快速查询Python文档方法分享
Dec 27 Python
Python实现的个人所得税计算器示例
Jun 01 Python
python实现ID3决策树算法
Aug 29 Python
Python实现的读取/更改/写入xml文件操作示例
Aug 30 Python
PyQt5实现类似别踩白块游戏
Jan 24 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
Aug 26 Python
Python Sympy计算梯度、散度和旋度的实例
Dec 06 Python
pytorch 求网络模型参数实例
Dec 30 Python
Python3爬虫里关于Splash负载均衡配置详解
Jul 10 Python
基于python实现计算两组数据P值
Jul 10 Python
Python爬虫之Spider类用法简单介绍
Aug 04 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利用正则表达式解决采集内容排版的问题
2013/06/20 PHP
curl实现站外采集的方法和技巧
2014/01/31 PHP
Zend Guard使用指南及问题处理
2015/01/07 PHP
php时间计算相关问题小结
2016/05/09 PHP
smarty自定义函数用法示例
2016/05/20 PHP
利用php的ob缓存机制实现页面静态化方法
2017/07/09 PHP
JavaScript 读取元素的CSS信息的代码
2010/02/07 Javascript
javascript 弹出窗口中是否显示地址栏的实现代码
2011/04/14 Javascript
40款非常棒的jQuery 插件和制作教程(系列一)
2011/10/26 Javascript
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
2012/02/03 Javascript
jQuery实现单击和鼠标感应事件
2015/02/01 Javascript
JavaScript function函数种类详解
2016/02/22 Javascript
jQuery解析XML 详解及方法总结
2016/09/28 Javascript
微信小程序 switch组件详解及简单实例
2017/01/10 Javascript
JS轮播图中缓动函数的封装
2020/11/25 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
利用JS制作万年历的方法
2017/08/16 Javascript
Vue项目组件化工程开发实践方案
2018/01/09 Javascript
jQuery仿移动端支付宝键盘的实现代码
2018/08/15 jQuery
vue项目中使用lib-flexible解决移动端适配的问题解决
2018/08/23 Javascript
nodejs中函数的调用实例详解
2018/10/31 NodeJs
在Vue中使用Select选择器拼接label的操作
2020/10/22 Javascript
vue中的计算属性和侦听属性
2020/11/06 Javascript
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
PyCharm使用教程之搭建Python开发环境
2016/06/07 Python
Python引用传值概念与用法实例小结
2017/10/07 Python
python ddt实现数据驱动
2018/03/14 Python
通过python实现弹窗广告拦截过程详解
2019/07/10 Python
HTML5中5个简单实用的API
2014/04/28 HTML / CSS
玩具反斗城美国官网:Toys"R"Us
2016/09/17 全球购物
澳大利亚排名第一的露营和户外设备在线零售商:Outbax
2020/05/06 全球购物
《雨点儿》教学反思
2014/04/14 职场文书
党校毕业心得体会
2014/09/13 职场文书
一般基层干部群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
2014年保育员个人工作总结
2014/12/02 职场文书
2015年乡镇流动人口工作总结
2015/05/12 职场文书