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

时间:2010-08-09 08:50:29

标签: python user-interface ipython python-idle

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

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

13 个答案:

答案 0 :(得分:52)

当我使用python时,我通常会打开两个终端窗口 - 一个使用IPython,另一个使用相当自定义的Vim。

两个好资源:


虽然听起来像你想要的是IPython的神奇功能%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'

您可以定义函数或其他任何内容 - 只需记住在关闭文件时将执行该文件的内容。

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

    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

混合或其中一个工作流程应该给你一些非常类似于你在IDLE工作的方式。

答案 1 :(得分:17)

Spyder,以前称为SPyderlib / Spyder2

非常轻量级,快速支持几乎所有需要使用python项目的features。它可以在嵌入式IPython实例中编辑和运行.py文件,然后与它们交互,设置断点等。

enter image description here full-size

答案 2 :(得分:5)

尝试Spyder,我花了一整天的时间试图找到一个具有ipython和Spyder功能的IDE,只是将它踢出公园..

自动完成是安装的最佳选择,没有配置文件和所有垃圾,它在角落有一个Ipython终端,可以立即运行你的代码。

大拇指

答案 3 :(得分:4)

看看DreamPie。可能就是你要找的东西。

答案 4 :(得分:3)

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

答案 5 :(得分:2)

如果您喜欢Matlab下的工作流程,那么您可能应该尝试以下两种方法:

1 尝试SpyderVim的组合。

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

  • 运行Spyder中的代码(在同一个解释器中,对我来说很重要):

  • 使用 F9 运行当前文件

  • Ctrl+F9 运行所选块

2 使用Vim + conque-shell 。 (on google code

  • Python interpreter

    中打开您首选的Vim

    ,例如 :ConqueTermSplit python

  • 然后直观地选择一些Python代码

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

注意:还有一些:

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

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

答案 6 :(得分:2)

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

答案 7 :(得分:1)

您可能希望PySlices ...

它是一种shell /编辑器混合体,它允许您将会话保存为名为.pyslice文件的特殊(几乎没有)修改过的python文件。

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

尽管如此,我仍然最终使用外部编辑器编写脚本(geany)。

答案 8 :(得分:1)

sudo apt-get install ipython

完成ipython的安装后。

从终端启动ipython(只需点击终端中的ipython

要运行ravi.py文件,您需要做的就是

%run ravi.py

答案 9 :(得分:1)

我想为vim建议一个优秀的插件,它可以在Vim和IPython之间进行双向集成:vim-ipython。

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

  

使用这个插件,你可以发送IPython的行或整个文件来执行,还可以在Vim中找回对象内省和单词补全,就像你得到的那样:对象?和对象。在IPython中。

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

答案 10 :(得分:0)

就个人而言,我使用@Wayne所建议的,vim和ipython的组合......

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

从最新版本(1.1)开始,ipython应该完全集成。如果你下载了一个早期版本,ipython作为一个外壳可以正常工作,但你不会得到一些spyder的漂亮功能(比如查看工作区窗口中所有当前定义的变量)。

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

另一个(非常,非常,新的)类似的项目是iep。它将(使用ipython作为shell)进行处理,并且我愿意打赌更好的ipython集成将在很长时间内完成。无论如何,iep本质上是一个更轻量级的spyder替代品。

这两个都面向科学计算,因此与matplotlib之类的东西很好地集成(因此可以在单独的线程中自动运行gui主循环)。它们不像“正常”的IDE,但它们可能会填满你正在寻找的利基。

答案 11 :(得分:0)

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

打开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']

答案 12 :(得分:0)

试试Ptpython。它与VIM的集成更好。您只需按V即可直接在VIM中进行修改。它还允许浏览您的历史记录..因此您可以在shell中编写相当多的代码,并逐步构建代码。

如果您已熟悉ipython,可以在此处查看ptpython的优势:

https://www.youtube.com/watch?v=XDgIDslyAFM