利用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 相关文章推荐
Win7上搭建Cocos2d-x 3.1.1开发环境
Jul 03 Python
Python中暂存上传图片的方法
Feb 18 Python
使用Python读写文本文件及编写简单的文本编辑器
Mar 11 Python
Python读写txt文本文件的操作方法全解析
Jun 26 Python
shelve  用来持久化任意的Python对象实例代码
Oct 12 Python
详解Python中表达式i += x与i = i + x是否等价
Feb 08 Python
基于python时间处理方法(详解)
Aug 14 Python
LRUCache的实现原理及利用python实现的方法
Nov 21 Python
Python自定义函数实现求两个数最大公约数、最小公倍数示例
May 21 Python
Python的bit_length函数来二进制的位数方法
Aug 27 Python
Django实现网页分页功能
Oct 31 Python
pandas中DataFrame数据合并连接(merge、join、concat)
May 30 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 5.3.5安装memcache注意事项小结
2011/04/12 PHP
php cookies中删除的一般赋值方法
2011/05/07 PHP
浅析ThinkPHP的模板输出功能
2014/07/01 PHP
PHP设计模式之迭代器模式
2016/06/17 PHP
php下载远程大文件(获取远程文件大小)的实例
2017/06/17 PHP
php微信公众号开发之音乐信息
2018/10/20 PHP
简略说明Javascript中的= =(等于)与= = =(全等于)区别
2013/04/16 Javascript
浅析JavaScript中的常用算法与函数
2013/11/21 Javascript
用js一次改变多个input的readonly属性值的方法
2014/06/11 Javascript
Chrome不支持showModalDialog模态对话框和无法返回returnValue问题的解决方法
2016/10/30 Javascript
AngularJS中的Promise详细介绍及实例代码
2016/12/13 Javascript
如何解决vue与传统jquery插件冲突
2017/03/20 Javascript
jquery+css实现侧边导航栏效果
2017/06/12 jQuery
React-Native之定时器Timer的实现代码
2017/10/04 Javascript
Vue组件之Tooltip的示例代码
2017/10/18 Javascript
JS实现给数组对象排序的方法分析
2019/06/24 Javascript
vue3 源码解读之 time slicing的使用方法
2019/10/31 Javascript
koa-passport实现本地验证的方法示例
2020/02/20 Javascript
Vue向后台传数组数据,springboot接收vue传的数组数据实例
2020/11/12 Javascript
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
[01:01:24]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python安装图文教程 Pycharm安装教程
2018/03/27 Python
Python对CSV、Excel、txt、dat文件的处理
2018/09/18 Python
Python标准库使用OrderedDict类的实例讲解
2019/02/14 Python
python中eval与int的区别浅析
2019/08/11 Python
Python连接mysql方法及常用参数
2020/09/01 Python
Python pymsql模块的使用
2020/09/07 Python
GitHub上值得推荐的8个python 项目
2020/10/30 Python
html5 Canvas画图教程(3)—canvas出现1像素线条模糊不清的原因
2013/01/09 HTML / CSS
html2canvas生成清晰的图片实现打印的示例代码
2019/09/30 HTML / CSS
环保倡议书400字
2014/05/15 职场文书
基层党组织整改方案
2014/10/25 职场文书
2015年中个人总结范文
2015/03/10 职场文书
学前教育见习总结
2015/06/23 职场文书
会议营销主持词
2015/07/03 职场文书
Android中的Launch Mode详情
2022/06/05 Java/Android