IPython工作流(编辑、运行)

IPython工作流(编辑、运行),python,user-interface,ipython,python-idle,Python,User Interface,Ipython,Python Idle,是否有IPython的GUI允许我打开/运行/编辑Python文件?我在空闲状态下的工作方式是打开两个窗口:shell和一个.py文件。我编辑.py文件,运行它,并与shell中的结果交互 可以这样使用IPython吗?或者有其他的工作方式吗?当我使用python时,我通常会打开两个终端窗口——一个是IPython,另一个是相当定制的Vim 两个很好的资源: 虽然听起来你想要的是IPython的神奇功能%ed/%edit: 您可以做的一个示例: In [72]: %ed IPython

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


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

当我使用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中运行该脚本,您将可以访问文件中定义的所有内容。例如,如果您的
/home/my
目录中的文件
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
[42]中的
:cd/home/my
/家/我自己
在[43]中:%run test.py#autocomplete也可以工作
在[44]中:骑士(“约翰”)
你好,约翰爵士
In[45]:t=Tester()
你好

无论是混合工作流程还是其中一种工作流程,都会给您带来与您习惯于在空闲状态下工作的方式非常相似的东西。

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

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

从最新版本(1.1)起,ipython应完全集成。如果下载早期版本,ipython作为一个外部shell可以很好地工作,但是您不会获得spyder的一些漂亮特性(比如在工作区窗口中查看所有当前定义的变量)

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

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

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

,以前称为SPyderlib/Spyder2

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


看一看。可能就是您想要的。

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

1尝试将
Spyder
Vim
组合使用

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

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

  • 使用
    F9
    运行当前文件

  • Ctrl+F9
    运行所选块

2使用
Vim
+
conque shell
。()

  • Vim
    中打开首选的
    Python解释器

    e、 例如,just
    :征服Split python

  • 然后选择一些
    Python
    code

  • F9
    粘贴并在
    Python解释器缓冲区中运行它

注:还有一些:

  • :conquetermvplit python

  • :征服术语python

  • :conquetermvplit rlwrap python

    如果解释器未命中
    readline
    ,则可以使用
    rlwrap

    • 就我个人而言,我喜欢。不幸的是,它只能在Windows上运行,但在葡萄酒中也能完美运行

      你可能会喜欢

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

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

      尽管如此,我最终还是使用了脚本外部编辑器(geany)

      完成ipython的安装后

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

      要运行
      ravi.py
      文件,只需

      %run ravi.py
      

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

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

      Autocomplete从安装开始就是一流的,没有配置文件和所有这些废话,它在角落里有一个Ipython终端,可以让您立即运行代码


      竖起大拇指

      我想为vim推荐一个优秀的插件,它可以实现vim和IPython之间的双向集成:vim IPython

      从上的项目页面:

      使用这个插件,您可以发送行或整个文件供IPython执行,还可以在Vim中获取对象内省和单词补全,比如y
      %run ravi.py
      
      %load_ext autoreload
      %autoreload 2
      from your_work_file import *
      
      c.InteractiveShellApp.extensions = ['autoreload']         
      c.InteractiveShellApp.exec_lines = ['%autoreload 2']