利用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 相关文章推荐
在Windows8上的搭建Python和Django环境
Jul 03 Python
Python实现冒泡,插入,选择排序简单实例
Aug 18 Python
使用IPython下的Net-SNMP来管理类UNIX系统的教程
Apr 15 Python
python-docx修改已存在的Word文档的表格的字体格式方法
May 08 Python
Python 访问限制 private public的详细介绍
Oct 16 Python
pyhanlp安装介绍和简单应用
Feb 22 Python
Python使用Pickle模块进行数据保存和读取的讲解
Apr 09 Python
Python的bit_length函数来二进制的位数方法
Aug 27 Python
python实现根据给定坐标点生成多边形mask的例子
Feb 18 Python
解决paramiko执行命令超时的问题
Apr 16 Python
Pytorch实现图像识别之数字识别(附详细注释)
May 11 Python
python中 .npy文件的读写操作实例
Apr 14 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网上调查系统
2006/10/09 PHP
php基础知识:类与对象(3) 构造函数和析构函数
2006/12/13 PHP
php fckeditor 调用的函数
2009/06/21 PHP
PHP实现登陆表单提交CSRF及验证码
2017/01/24 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
JavaScript 学习笔记(十五)
2010/01/28 Javascript
鼠标移到导航当前位置的LI变色处于选中状态
2013/08/23 Javascript
js中的this关键字详解
2013/09/25 Javascript
js 实现的可折叠留言板(附源码下载)
2014/07/01 Javascript
纯js实现仿QQ邮箱弹出确认框
2015/04/29 Javascript
JavaScript实现移动端页面按手机屏幕分辨率自动缩放的最强代码
2017/08/18 Javascript
详解vue mint-ui源码解析之loadmore组件
2017/10/11 Javascript
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
浅谈react受控组件与非受控组件(小结)
2018/02/09 Javascript
vue使用xe-utils函数库的具体方法
2018/03/06 Javascript
JS实现监控微信小程序的原理
2018/06/15 Javascript
小程序图片剪裁加旋转的示例代码
2018/07/10 Javascript
详解基于webpack&gettext的前端多语言方案
2019/01/29 Javascript
Vue表单之v-model绑定下拉列表功能
2019/05/14 Javascript
vue 动态组件用法示例小结
2020/03/06 Javascript
原生js实现自定义滚动条
2021/01/20 Javascript
python学习教程之使用py2exe打包
2017/09/24 Python
Python序列化基础知识(json/pickle)
2017/10/19 Python
python MNIST手写识别数据调用API的方法
2018/08/08 Python
对PyQt5中的菜单栏和工具栏实例详解
2019/06/20 Python
在pycharm中显示python画的图方法
2019/08/31 Python
10行Python代码计算汽车数量的实现方法
2019/10/23 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
python中安装django模块的方法
2020/03/12 Python
澳大利亚家具和家居用品购物网站:Zanui
2018/12/29 全球购物
介绍下WebSphere的安全性
2013/01/31 面试题
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
《月球之谜》教学反思
2014/04/10 职场文书
法人代表任命书范本
2014/06/05 职场文书
用电申请报告范文
2015/05/18 职场文书
风之谷观后感
2015/06/11 职场文书