一个好的编译器对于我们处理日常的科研很关键,好的编译器无论是从界面,字体风格,提示,调试等各方面都能从用户角度出发,提供最好的使用体验。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. Android Animation学习 实现 IOS 滤镜退出动画

    IOS的用户体验做的很好,其中一点很重要的地方就是动画效果. 最近在学习Android的Animation,简单实现了一个IOS相机滤镜退出的动画: 布局文件:activity_animation_d ...

  2. For and While loop choice.

    /* Difference between 'for' and 'while'. We can transform everything between 'for' and 'while'. if t ...

  3. The windows PowerShell snap-in 'Microsoft.Crm.PowerShell' is not installed on this computer

    加载PowerShell插件时出现以下错误: The windows PowerShell snap-in 'Microsoft.Crm.PowerShell' is not installed on ...

  4. 系统重装c盘后,mysql重新设置

    之前我的mysql装在d盘,重装了系统后,虽然只格式化了c盘,但mysql还是不能用了.我网上找了找.修改了一下配置. 1.首先设置环境变量,编辑path,在后面添加上mysql的安装路径 : 2.之 ...

  5. iOS里面如何同时使用开启ARC的库 和 没有开启 ARC的库,ARC 与非 ARC同时存在的问题

    旧工程配置arc方案: 1,直接在targets->build phases中修改compiler Flags,是否支持arc.添加:-fobjc-arc,就可以让旧项目支持arc. 新工程配置 ...

  6. php文件粘贴上传

    <?php header("Access-Control-Allow-Origin:*"); $url = 'http://'.$_SERVER['HTTP_HOST']; ...

  7. SGU 139.Help Needed!

    题意: 判断15数码问题是否有解. 如果0的偏移量和逆序对个数同奇偶则无解. 因为目标状态的偏移量为0,逆序对为15,而0移动的时候偏移量±1,逆序对的改变量为也为奇数. 这就使得偏移量和逆序对数始终 ...

  8. POJ 3468.A Simple Problem with Integers 解题报告

    用树状数组和线段树会比较简单,这里用这道题来学习Splay. 第一次写,代码比较丑 /* 初始化添加一个key值足够大的结点 保证每个需要的结点都有后继 */ #include <iostrea ...

  9. css编译工具Sass中混合宏,继承,占位符分别在什么时候使用

    //SCSS中混合宏使用 @mixin mt($var){ margin-top: $var; } .block { @include mt(5px); span { display:block; @ ...

  10. 入门5:PHP 语法基础——流程控制

    一.if...else 语句 if( ) else{ } 如果 .... 就.... 否则.... if(判断){ 判断成立 则执行该表达式 }else{ 如果上方判断都不成立 则执行该表达式 } i ...