50

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

是否可以像这样使用 IPython?或者有其他工作方式吗?

4

13 回答 13

55

当我使用 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 脚本的目录。然后,您可以%run从 IPython 中编写脚本,您将可以访问文件中定义的所有内容。例如,如果您的目录中的文件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 中工作的方式非常相似的东西。

于 2010-08-20T13:59:10.690 回答
17

Spyder,以前称为 SPyderlib / Spyder2

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

在此处输入图像描述 全尺寸

于 2010-10-15T02:29:50.583 回答
5

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

自动完成从安装开始就是一流的,没有配置文件和所有的废话,它的角落里有一个 Ipython 终端,让你可以立即运行你的代码。

竖起大拇指

于 2012-07-12T16:24:17.930 回答
4

看看DreamPie。可能是您正在寻找的。

于 2010-10-17T07:01:56.893 回答
3

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

于 2011-02-18T01:10:55.757 回答
2

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

于 2012-03-26T07:18:47.740 回答
2

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

1试试和的Spyder组合Vim

  • 编辑python文件VimSpyder可以自动重新加载文件)

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

  • 用于F9运行当前文件

  • Ctrl+F9运行选定的块

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

  • Python interpreter在 中打开您的首选Vim

    例如,只是:ConqueTermSplit python

  • 然后视觉选择一些Python代码

  • F9粘贴并在Python interpreter buffer.

注意:还有一些:

  • :ConqueTermVSplit python,

  • :ConqueTerm python

  • :ConqueTermVSplit rlwrap python

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

于 2011-01-08T10:37:02.923 回答
1

我想推荐一个出色的 vim 插件,它可以在 Vim 和 IPython 之间进行双向集成:vim-ipython。

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

使用这个插件,您可以发送行或整个文件供 IPython 执行,还可以在 Vim 中取回对象自省和单词补全,就像您得到的一样:对象?和对象。在 IPython 中。

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

于 2013-11-15T20:19:10.807 回答
1

你可能喜欢PySlices ...

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

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

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

于 2011-06-01T16:32:02.653 回答
1
sudo apt-get install ipython

完成安装 ipython 后。

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

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

%run ravi.py
于 2012-03-10T01:49:35.743 回答
0

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

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

从最新版本(1.1)开始,ipython 应该是完全集成的。如果您下载较早的版本,将 ipython 作为外部 shell 可以正常工作,但您不会获得 spyder 的一些漂亮功能(例如在工作区窗口中查看所有当前定义的变量)。

Spyder 确实有点重量级,但它是一个有趣的项目。

另一个(非常、非常、新的)类似项目是iep。它将(某种程度上)与 ipython 作为 shell 一起工作,我敢打赌,更好的 ipython 集成很快就会出现。无论如何,iep 本质上是一个比 spyder 更轻量级的替代品。

这两者都面向科学计算,因此与 matplotlib 之类的东西有很好的集成(因此可以在单独的线程中自动运行 gui 主循环)。它们不太像“普通”IDE,但它们可以很好地填补您正在寻找的利基市场。

于 2010-08-24T16:50:38.590 回答
0

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

打开jupyter qtconsoleorjupyter 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']
于 2016-01-20T17:02:45.897 回答
0

试试Ptpython。它与VIM. 只需按 即可在 VIM 中直接编辑V。它还允许浏览您的历史记录。因此您可以在 shell 中编写很多代码,并逐步构建您的代码。

如果您已经熟悉ipython,可以查看ptpython这里的优点:

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

于 2018-01-10T18:37:03.560 回答