利用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执行子进程实现进程间通信的方法
Jun 02 Python
用python记录运行pid,并在需要时kill掉它们的实例
Jan 16 Python
利用numpy+matplotlib绘图的基本操作教程
May 03 Python
浅谈python中的__init__、__new__和__call__方法
Jul 18 Python
Python 多线程不加锁分块读取文件的方法
Dec 11 Python
计算机二级python学习教程(1) 教大家如何学习python
May 16 Python
Django发送邮件和itsdangerous模块的配合使用解析
Aug 10 Python
Python使用python-docx读写word文档
Aug 26 Python
PyQt5多线程刷新界面防假死示例
Dec 13 Python
将python包发布到PyPI和制作whl文件方式
Dec 25 Python
Python unittest装饰器实现原理及代码
Sep 08 Python
Python查找算法的实现 (线性、二分,分块、插值查找算法)
Apr 24 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控制文件下载速度的方法
2015/03/24 PHP
yii2缓存Caching基本用法示例
2016/07/18 PHP
Laravel模型事件的实现原理详解
2018/03/14 PHP
比较详细的javascript对象的property和prototype是什么一种关系
2007/08/06 Javascript
Javascript异步表单提交,图片上传,兼容异步模拟ajax技术
2010/05/10 Javascript
javascript学习笔记(二) js一些基本概念
2012/06/18 Javascript
JQuery EasyUI 数字格式化处理示例
2014/05/05 Javascript
js实现用户注册协议倒计时的方法
2015/01/21 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
JS高级运动实例分析
2016/12/20 Javascript
微信小程序 动画的简单实例
2017/10/12 Javascript
基于vue-cli 路由 实现类似tab切换效果(vue 2.0)
2019/05/08 Javascript
Python删除空文件和空文件夹的方法
2015/07/14 Python
详解python之多进程和进程池(Processing库)
2017/06/09 Python
Python和Go语言的区别总结
2019/02/20 Python
jupyter notebook 中输出pyecharts图实例
2020/04/23 Python
基于python-pptx库中文文档及使用详解
2020/02/14 Python
浅谈python的elementtree模块处理中文注意事项
2020/03/06 Python
python deque模块简单使用代码实例
2020/03/12 Python
python3注册全局热键的实现
2020/03/22 Python
哪些是python中web开发框架
2020/06/17 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
2020/10/12 Python
基于css3仿造window7的开始菜单
2010/06/17 HTML / CSS
CSS3提交意见输入框样式代码
2014/10/30 HTML / CSS
C语言怎样定义和声明全局变量和函数最好
2013/11/26 面试题
DataReader和DataSet的异同
2014/12/31 面试题
国际贸易系求职信
2014/08/09 职场文书
村支部书记群众路线对照检查材料思想汇报
2014/10/08 职场文书
2014年酒店服务员工作总结
2014/12/08 职场文书
2014年人大工作总结
2014/12/10 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
2021/04/06 Oracle
mysql批量新增和存储的方法实例
2021/04/07 MySQL
Python 中数组和数字相乘时的注意事项说明
2021/05/10 Python
Oracle 11g数据库使用expdp每周进行数据备份并上传到备份服务器
2022/06/28 Oracle