是否有允许我打开/运行/编辑 Python 文件的 IPython 图形用户界面?我在 IDLE 中的工作方式是打开两个窗口:shell 和一个 .py 文件。我编辑 .py 文件,运行它,并与 shell 中的结果进行交互。
是否可以像这样使用 IPython?或者有其他工作方式吗?
是否有允许我打开/运行/编辑 Python 文件的 IPython 图形用户界面?我在 IDLE 中的工作方式是打开两个窗口: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 脚本的目录。然后,您可以%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 中工作的方式非常相似的东西。
试试 Spyder,我花了一整天的时间试图找到一个具有 ipython 功能的 IDE,而 Spyder 只是把它踢出了公园。
自动完成从安装开始就是一流的,没有配置文件和所有的废话,它的角落里有一个 Ipython 终端,让你可以立即运行你的代码。
竖起大拇指
看看DreamPie。可能是您正在寻找的。
就个人而言,我喜欢PyScripter。不幸的是,它只适用于 Windows,但在 Wine 中也能完美运行。
最新版本的IdleX在 IDLE 中支持 IPython,以及 %edit 魔法。您可以通过多种方式从 IPython shell 中的 IDLE 编辑器运行文件,通过 F5(运行所有内容)、F9(运行选择)或 Ctrl+Enter(运行子代码)。
如果您喜欢 下的工作流程Matlab
,那么您可能应该尝试以下两个:
1、试试和的Spyder
组合Vim
。
编辑python文件Vim
(Spyder
可以自动重新加载文件)
运行代码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
.
我想推荐一个出色的 vim 插件,它可以在 Vim 和 IPython 之间进行双向集成:vim-ipython。
从http://github.com/ivanov/vim-ipython上的项目页面:
使用这个插件,您可以发送行或整个文件供 IPython 执行,还可以在 Vim 中取回对象自省和单词补全,就像您得到的一样:对象?和对象。在 IPython 中。
这个插件有一个很大的限制:它不支持 python 3(它是计划的)。
sudo apt-get install ipython
完成安装 ipython 后。
从终端启动 ipython(只需点击终端ipython
)
要运行ravi.py
文件,您需要做的就是
%run ravi.py
就个人而言,我使用@Wayne 的建议,vim 和 ipython 的组合......
但是,如果您更喜欢不同的方法,请查看spyder。
从最新版本(1.1)开始,ipython 应该是完全集成的。如果您下载较早的版本,将 ipython 作为外部 shell 可以正常工作,但您不会获得 spyder 的一些漂亮功能(例如在工作区窗口中查看所有当前定义的变量)。
Spyder 确实有点重量级,但它是一个有趣的项目。
另一个(非常、非常、新的)类似项目是iep。它将(某种程度上)与 ipython 作为 shell 一起工作,我敢打赌,更好的 ipython 集成很快就会出现。无论如何,iep 本质上是一个比 spyder 更轻量级的替代品。
这两者都面向科学计算,因此与 matplotlib 之类的东西有很好的集成(因此可以在单独的线程中自动运行 gui 主循环)。它们不太像“普通”IDE,但它们可以很好地填补您正在寻找的利基市场。
您可以使用 IPython 中的 autoreload 模块来自动重新加载代码。
打开jupyter qtconsole
orjupyter 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']
试试Ptpython
。它与VIM
. 只需按 即可在 VIM 中直接编辑V
。它还允许浏览您的历史记录。因此您可以在 shell 中编写很多代码,并逐步构建您的代码。
如果您已经熟悉ipython
,可以查看ptpython
这里的优点: