一个好的编译器对于我们处理日常的科研很关键,好的编译器无论是从界面,字体风格,提示,调试等各方面都能从用户角度出发,提供最好的使用体验。Python本身自带的IDLE或者在CMD里进行操作和调试,对于小型的测试程序和学习的时候是可以的;但是对相对比较大的程序,它们就显得有些力不从心了,首先是查找和提示的,还有就是当你想要改变程序中某个变量或者函数的名称,一个个查找是让人奔溃的事情。

  本人显示从IDLE和CMD开始Python码城过程的,慢慢的发现,相对于以前使用的VS和eclipse,它们显得太LOW了。我开始尝试在sublime里面进行编辑,给sublime装插件,能够直接运行Python程序(Ctrl+B),以及进行代码智能提示。sublime用了好长一段时间,还是比较好用的,代码的显示也比较让人愉悦,你也可以按自己的喜好去进行配置。总的来说,还是比较推荐sublime的。还有就是pycharm了,有很多的Python开发者使用它,PyCharm确实是Python开发之首选。我也用过一段时间,习惯了sublime,就没太多的去研究,总体来说也还是比较推荐的编译器之一。

  后来在别人的博客中看到了ipython,它是一个Python交互式的shell,比默认的shell要好用,支持变量的自动补全,自动缩进,支持bash shell命令,内置了许多很有用的功能和函数。安装也很简单,windows下直接在命令行输入:python –m pip install IPython。最让人惊喜的是,ipython中提供了一下简单好用的magic函数。以下是百度上列举的常用命令:

%bg function把 function 放到后台执行,例如: %bg myfunc(x, y,z=1),之后可以用jobs将其结果取回。myvar = jobs.result(5) 或 myvar =jobs[5].result。另外,jobs.status() 可以查看现有任务的状态。
%ed 或 %edit编辑一个文件并执行,如果只编辑不执行,用 ed -x filename 即可。
%env显示环境变量
%hist 或 %history显示历史记录
%macro name n1-n2 n3-n4 ... n5 .. n6 ...创建一个名称为 name 的宏,执行 name 就是执行 n1-n2 n3-n4 ... n5 .. n6 ...这些代码。
%pwd显示当前目录
%pycat filename用语法高亮显示一个 python 文件(不用加.py后缀名)
%save filename n1-n2 n3-n4 ... n5 .. n6 ...将执行过多代码保存为文件
%time statement计算一段代码的执行时间
%timeit statement自动选择重复和循环次数计算一段代码的执行时间,太方便了。

  然而百度漏掉了比较常用的%run,可以用来运行外部的Python脚本。还有**??来显示某个模块用法,如import os,os??。其他的包括查看变量的值,代码运行效率检查等。下次我将单独开一篇讲常见的magic命令,这次就不多赘述。

  说完自己选择编译器进行开发的过程,终于要来到我们的重点了——Anaconda。一个偶然的机会,看到师兄使用ipython notebook进行汇报,可以在页面进行代码和文档排版编写,对于科学计算非常方便。ipython notebook是web based IPython封装,但是可以展现丰富文本,使得整个工作可以以笔记的形式展现、存储,对于交互编程、学习非常方便。关于ipython notebook的具体使用,找机会单独另开一节,在此不是重点。下图是它的页面,在上面还可以用markdown标记编辑文本。可以呈现很不错的文档页面。

  Anaconda是一个集成的环境,现在已经升级到Anaconda2了,直接下载安装,很方便,集成了Python,ipython,notebook,Spyder和qtconsole,如下所示。之前的ipython notebook也改为了jupyter notebook。

  Anaconda是一个和Canopy类似的科学计算环境,但用起来更加方便。自带的包管理器conda也很强大。Anaconda提供了Python2.7和Python3.4两个版本,同时如果需要其他版本,还可以通过conda来创建。

  下面来看一下conda。输入 conda list 来看一下所有安装时自带的Python扩展。粗略看了一下,其中包括了常用的 Numpy , Scipy , matplotlib 和 networkx 等,以及 beautiful-soup , requests , flask , tornado 等网络相关的扩展,还有常用的科学工具包,scikit-image,scikit-learn等。其他没有的包可以通过pip,easy_install安装,也可以通过它特有的conda来进行安装,conda install ***,如果需要指定版本,也可以直接用 [package-name]=x.x 来指定。conda的repo中的扩展不算太新,如果想要更新的,可能要用PyPI或者自己下载源码。而conda和pip关联的很好。使用pip安装的东西可以使用conda来管理,这点要比Canopy好。

这个科学计算环境的另一个要求就是能够多个Python版本并存,尤其是2.x和3.x的并存。这个通过 virtualenv 可以做到。Anaconda也正是通过其实现的。

下面用conda创建一个名叫python3的版本为python3.4的环境。

conda create -n python3 python=3.4
这样就会在Anaconda安装目录下的envs目录下创建python3这个目录。

向其中安装扩展可以:

直接用 conda install 并用 -n 指明安装到的环境,这里自然就是 python3 。
像 virtualenv 那样,先activate,然后在虚拟环境中安装。

spyder就是一个Python的扩展,也是比较好用的,感兴趣的可以自己亲自尝试下,它里面的查看变量的功能还是很方便的。

2015-11-23 22:13:51

python编译环境发掘——从IDLE到sublime到pycharm到Anaconda的更多相关文章

  1. 2.准备Python编译环境

    2.准备Python编译环境 2.1下载Python2.7.6.tgz.ipython1.2.1.tgz.sqlite-autoconf-3071401.tar.gz 2.2安装Python2.7.6 ...

  2. 【转】ubuntu下安装eclipse以及配置python编译环境

    原文网址:http://blog.csdn.net/wangpengwei2/article/details/17580589 一.安装eclipse 1.从http://www.eclipse.or ...

  3. 使用Code::Blocks配置Python编译环境

    1.先在CodeBlock中新建C或C++工程. CodeBlock新建工程步骤:File——New——Project——Console applications——C或C++都可——Project所 ...

  4. Xcode搭建Python编译环境

    * {-webkit-tap-highlight-color: rgba(0,0,0,0);}html {-webkit-text-size-adjust: none;}body {font-fami ...

  5. Python(一) 快速配置Python编译环境与第一个py文件程序

    1. Python基本语法在此不熬述. 2. 到管网下载Python 3.6.x 版本,与本机匹配的版本,如本机是 win7 64 python-3.6.5-amd64 3. 下载IDE:Python ...

  6. python编译环境安装指南

    windows系统先安装python解释器: windows版本exe安装文件下载地址:https://www.python.org/ftp/python/2.7.12/python-2.7.12.m ...

  7. Sublime Text3 配置Python3编译环境

    Sublime Text3 配置Python编译环境 进入Sublime Text3 ,然后选择菜单:工具(T)==>编译系统(U)==>新编译系统... 把上面的代码换成如下代码: &q ...

  8. sublime text2建成C语言(C++)编译环境

    四个步骤: 下载安装Sublime text2 for windows 下载安装 MinGW 与 系统变量设置 Sublime Building System 设置 编译测试 一.下载安装Sublim ...

  9. Editplus配置Java、Python、C/C++ (基于VS2010) 编译环境

    1. 为什么要配置EditPlus使其能够编译运行Java.Python.C/C++等程序? EditPlus是一款轻量级(大约2M)的文本编辑器,实际开发中,只需要关联相应的编译工具就可以化身为一个 ...

随机推荐

  1. js时间字符串转Date对象

    var DATE_REGEXP = new RegExp("(\\d{4})-(\\d{2})-(\\d{2})([T\\s](\\d{2}):(\\d{2}):(\\d{2})(\\.(\ ...

  2. 设置tomcat启动超时,不会自动停止

    tomcat启动时如果1000ms没有起来,服务就会自动停止.设置位置如下

  3. XML有哪些解析方式有何优缺点?xml有哪些解析技术?区别是什么?

    有DOM,SAX,STAX等 (1):DOM:处理大型文件时其性能下降的非常厉害.这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XM ...

  4. javascript基础学习(九)

    javascript之基本包装类型 学习要点: 基本包装类型概述 Boolean类型 Number类型 String类型 一.基本包装类型概述 为了便于操作基本类型值,提供了3种特殊的引用类型:Boo ...

  5. java——输入流FileInputStream

    写一个简单的程序,实现从电脑中的一个盘里的文件中往程序中输入内容. package com.liaojianya.chapter5; import java.io.FileInputStream; i ...

  6. HTML5 Canvas画数字时钟

    先不说废话,没代码算个蛋. 一些地方注释都写得比较清楚,不过这只是部分,因为只有秒针,但是时针,分针的逻辑都是一致的. 代码中有些坐标不知道为什么较不准,看看就好

  7. 1s延时程序

    #include <reg52.h>sbit P1_0 = P1^0;void Delay(); // 下面引用时一定要和这里的大小写一致否则会有警告或错误 void Main(){whi ...

  8. Python爬虫常用模块,BeautifulSoup笔记

    import urllib import urllib.request as request import re from bs4 import * #url = 'http://zh.house.q ...

  9. Java中间件

    传统的HTML已经满足不了如今web系统的诸多的功能需求,建立一个交互式的Web,便诞生了各种Web开发语言,如ASP,JSP,PHP等,这些语言与传统的语言有着密切的联系,如JSP基于Java语言. ...

  10. JQuery重要知识点

    jQuery基本选择器----包括ID选择器,标签选择器,类选择器,通配选择器和组选择器5种 a. ID选择器: $("#id") b. 标签选择器:$("element ...