IPython工作stream程(编辑,运行)

是否有一个IPython的GUI,允许我打开/运行/编辑Python文件? 我在IDLE中的工作方式是打开两个窗口:shell和一个.py文件。 我编辑.py文件,运行它,并与shell中的结果进行交互。

有没有可能像这样使用IPython? 还是有另一种工作方式?

当我使用python的时候,我通常会打开两个terminal窗口 – 一个使用IPython,另一个使用相当定制的Vim。

两个很好的资源:


虽然听起来像是你想要的是IPython的神奇function%ed / %edit

你可以做的一个例子:

 In [72]: %ed IPython will make a temporary file named: c:\docume~1\wjwe312\locals~1\temp\ipython_edit_ar8veu.py 

在我把这个文件中:

 x = "Hello World" print 3 

保存并退出文件后:

 Editing... done. Executing edited code... 3 Out[72]: "x = 'Hello world'\nprint 3\n" In [73]: x Out[73]: 'Hello world' 

您可以定义函数或其他任何东西 – 只要记住文件的内容将在closures时执行。

另一个类似的工作stream程是cd到你正在用你最喜欢的编辑器编辑的包含你的Python脚本的目录。 然后,您可以从IPython中%run脚本,并且可以访问文件中定义的所有内容。 例如,如果您在/home/myself目录下的test.py文件中包含以下内容:

  class Tester(object): def __init__(self): print "hi" def knightme(name): print "Hello, Sir ", name 

然后你可以做到以下几点:

 In [42]: cd /home/myself /home/myself In [43]: %run test.py # <Tab> autocomplete also works In [44]: knightme('John') Hello, Sir John In [45]: t = Tester() Hi 

无论是混合还是其中一种工作stream应该给你一些非常类似于你在IDLE中工作的方式。

Spyder ,以前称为SPyderlib / Spyder2

相当轻量级,快速,并支持几乎所有的function,你将需要使用一个Python项目。 它可以编辑并运行embedded式IPython实例中的.py文件,然后与它们交互,设置断点等。

在这里输入图像说明 全尺寸

尝试Spyder,我花了整天试图find一个具有ipythonfunction的IDE,Spyder只是把它踢出公园..

自动完成从安装,没有configuration文件和所有废话一stream的权利,它有一个Ipythonterminal在你的angular落立即运行你的代码。

大竖起大拇指

看看DreamPie 。 可能是你在找什么。

我个人喜欢PyScripter 。 不幸的是,它只能在Windows上运行,而且在Wine中运行也很完美。

最新版本的IdleX支持IDLE中的IPython,以及%编辑魔术。 您可以通过F5(运行所有内容),F9(运行select)或Ctrl + Enter(运行子代码)等多种方式,从IPython shell中的IDLE编辑器运行文件。

如果你喜欢Matlab下的工作stream程,那么你可能应该尝试以下两种:

1尝试SpyderVim的组合。

  • Vim编辑python文件( Spyder可以自动重新加载文件)

  • Spyder运行代码(在同样的解释器中,这对我很重要):

  • 使用F9运行当前文件

  • Ctrl+F9运行选定的块

2使用Vim + conque-shell 。 ( 在谷歌代码上 )

  • Vim打开你喜欢的Python interpreter

    例如:ConqueTermSplit python

  • 然后直观地select一些Python代码

  • F9粘贴并在Python interpreter buffer运行它。

注意:更多:

  • :ConqueTermVSplit python
  • :ConqueTerm python
  • :ConqueTermVSplit rlwrap python

    如果您的翻译错过了readline ,您可以使用rlwrap

你可能会喜欢PySlices …

这是一个shell /编辑混合,可以让你保存会话作为特殊的(几乎)修改的python文件,称为.pyslice文件。

它现在是wxPython的一部分,所以只需安装(v2.8.11或更高版本)并在命令行上运行“python -m wx.py.PySlices”来启动它。

也就是说,我仍然使用脚本的外部编辑器(geany)。

 sudo apt-get install ipython 

一旦你完成安装ipython。

从terminal启动ipython(只需在ipython中打ipython)

运行ravi.py文件,所有你需要做的是

 %run ravi.py 

我想为vimbuild议一个非常好的插件,它可以使Vim和IPython双向集成:vim-ipython。

http://github.com/ivanov/vim-ipython上的项目页面:;

使用这个插件,您可以发送IPython的行或整个文件来执行,也可以在Vim中获取对象内省和字完成,就像您得到的:object? 和对象。 在IPython中。

这个插件有一个很大的局限性:它不支持python 3(这是计划中的)。

就个人而言,我使用@Waynebuild议的,vim和ipython的组合。

但是,如果您更喜欢不同的方法,请查看Spyder 。

截至最新版本(1.1)ipython应该完全集成。 如果你下载一个早期的版本,ipython作为一个外部的shell可以正常工作,但是你不会得到一些spyder的漂亮function(比如在工作区窗口中查看所有当前定义的variables)。

Spyder绝对有点重量级,但这是一个有趣的项目。

另一个(非常非常新的)类似的项目,看看是iep 。 它会(以sorting的方式)与ipython一起作为shell使用,而且我会愿意相信,更好的ipython集成将会持续太久。 无论如何,iep本质上是spyder的一个更轻量级的select。

这两者都是面向科学计算,因此与matplotlib(因此可以在一个单独的线程中自动运行gui主循环)有很好的集成。 他们不像“普通”的IDE,但他们可能会填补你正在寻找相当好的利基。

您可以使用IPython中的自动重载模块来自动重载代码。

打开jupyter qtconsolejupyter console然后键入:

 %load_ext autoreload %autoreload 2 from your_work_file import * 

现在每次保存your_work_file.py ,都会自动重新加载。

提示:如果您希望自动发生这种情况,请将以下行放在ipython_config.py文件中:

 c.InteractiveShellApp.extensions = ['autoreload'] c.InteractiveShellApp.exec_lines = ['%autoreload 2']