是否有IPython的GUI允许我打开/运行/编辑Python文件?我在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脚本的目录。然后你可以从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工作的方式。
我想建议一个优秀的vim插件,它可以在Vim和IPython之间实现双向集成:vim-ipython。
来自ipython
的项目页面:
使用这个插件,你可以发送IPython的行或整个文件来执行,还可以在Vim中找回对象内省和单词补全,就像你得到的那样:对象?和对象。在IPython中。
这个插件有一个很大的限制:它不支持python 3(它的计划)。
就个人而言,我使用了@Wayne所建议的,vim和ipython的组合......
但是,如果您更喜欢不同的方法,请查看ravi.py
。
从最新版本(1.1)开始,ipython应该完全集成。如果你下载了一个早期版本,ipython作为一个外壳可以正常工作,但你不会得到一些spyder的漂亮功能(比如查看工作区窗口中所有当前定义的变量)。
Spyder绝对有点重量级,但这是一个有趣的项目。
另一个(非常,非常,新的)类似的项目是%run ravi.py
。它将(使用ipython作为shell)进行处理,并且我愿意打赌更好的ipython集成将在很长时间内完成。无论如何,iep本质上是spyder的一种更轻量级的替代品。
这两个都面向科学计算,因此与matplotlib之类的东西很好地集成(因此可以在单独的线程中自动运行gui主循环)。它们不像“正常”的IDE,但它们可能会填满你正在寻找的利基。
您可以使用IPython中的autoreload模块自动重新加载代码。
打开http://github.com/ivanov/vim-ipython或spyder并输入:
iep
现在每次保存jupyter qtconsole
,它都会自动重新加载。
提示:如果您希望自动执行此操作,请在qazxsw poi文件中添加以下行:
jupyter console
试试%load_ext autoreload
%autoreload 2
from your_work_file import *
。它与your_work_file.py
有更好的整合。只需按ipython_config.py
即可直接在VIM中编辑。它还允许浏览您的历史记录..因此您可以在shell中编写相当多的代码,并逐步构建代码。
如果您已经熟悉c.InteractiveShellApp.extensions = ['autoreload']
c.InteractiveShellApp.exec_lines = ['%autoreload 2']
,可以在这里查看Ptpython
的优点:
VIM
试试Spyder,我整天都在努力寻找一款具有ipython和Spyder功能的IDE,只需将它踢出公园即可。
自动完成是安装的最佳选择,没有配置文件和所有垃圾,它在角落有一个Ipython终端,您可以立即运行您的代码。
大拇指
看看DreamPie。可能就是你要找的东西。
就个人而言,我喜欢PyScripter。不幸的是,它只能在Windows上运行,但在Wine中运行也很完美。
最新版本的IdleX支持IDLE中的IPython,以及%edit magic。您可以通过F5(运行所有内容),F9(运行选择)或Ctrl + Enter(运行子代码)以多种方式从IPython shell中的IDLE编辑器运行文件。
如果您喜欢Matlab
下的工作流程,那么您可能应该尝试以下两种方法:
1,尝试Spyder
和Vim
的组合。
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
,你可以使用qazxsw poi。你可能会喜欢readline
......
它是一种shell /编辑器混合体,它允许您将会话保存为名为.pyslice文件的特殊(几乎)修改过的python文件。
它现在是rlwrap
的一部分,所以只需安装它(v2.8.11或更高版本)并在命令行上运行“python -m wx.py.PySlices”即可启动它。
也就是说,我仍然最终使用外部编辑器编写脚本(geany)。