利用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通过smpt发送邮件的方法
Apr 30 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
Jun 21 Python
tensorflow实现简单逻辑回归
Sep 07 Python
详解关于Django中ORM数据库迁移的配置
Oct 08 Python
Python3.6简单的操作Mysql数据库的三个实例
Oct 17 Python
解析Python的缩进规则的使用
Jan 16 Python
Django将默认的SQLite更换为MySQL的实现
Nov 18 Python
Python try except异常捕获机制原理解析
Apr 18 Python
Pytorch 高效使用GPU的操作
Jun 27 Python
Python 绘制可视化折线图
Jul 22 Python
python缺失值的解决方法总结
Jun 09 Python
Python学习之包与模块详解
Mar 19 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
DC《神奇女侠2》因疫情推迟上映 温子仁新恐怖片《恶性》撤档
2020/04/09 欧美动漫
php中ob(Output Buffer 输出缓冲)函数使用方法
2007/07/21 PHP
Laravle eloquent 多对多模型关联实例详解
2017/11/22 PHP
jQuery右键菜单contextMenu使用实例
2011/09/28 Javascript
JavaScript将字符串转换成字符编码列表的方法
2015/03/19 Javascript
javascript去除空格方法小结
2015/05/21 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
2015/09/26 Javascript
Javascript中replace()小结
2015/09/30 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
2015/11/06 Javascript
JavaScript使用DeviceOne开发实战(一) 配置和起步
2015/12/01 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
2016/05/10 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐)
2016/06/23 Javascript
封装获取dom元素的简单实例
2016/07/08 Javascript
windows 下安装nodejs 环境变量设置
2017/02/02 NodeJs
在React中如何优雅的处理事件响应详解
2017/07/24 Javascript
jQuery轮播图实例详解
2018/08/15 jQuery
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
vue随机验证码组件的封装实现
2020/02/19 Javascript
原生JavaScript实现五子棋游戏
2020/11/09 Javascript
[46:55]Ti4 冒泡赛第二轮 LGD vs C9
2014/07/14 DOTA
[51:36]EG vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
Django中redis的使用方法(包括安装、配置、启动)
2018/02/21 Python
python+selenium实现QQ邮箱自动发送功能
2019/01/23 Python
python查看文件大小和文件夹内容的方法
2019/07/08 Python
django foreignkey外键使用的例子 相当于left join
2019/08/06 Python
Python实现串口通信(pyserial)过程解析
2019/09/25 Python
Python 如何反方向迭代一个序列
2020/07/28 Python
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
详解通过focusout事件解决IOS键盘收起时界面不归位的问题
2019/07/18 HTML / CSS
美国隐形眼镜网上商店:Lens.com
2019/09/03 全球购物
介绍一下linux的文件权限
2012/02/15 面试题
学子宴答谢词
2014/01/25 职场文书
大学生就业意向书范文
2014/04/01 职场文书
大学辅导员述职报告
2015/01/10 职场文书
大学生就业指导课心得体会
2016/01/15 职场文书
【海涛解说】史上最给力比赛,挑战DOTA极限
2022/04/01 DOTA