是否有IPython的GUI允许我打开/运行/编辑Python文件?我在IDLE中的工作方式是打开两个窗口:shell和.py文件。我编辑.py文件,运行它,并与shell中的结果进行交互。
可以像这样使用IPython吗?还是有另一种工作方式吗?
答案 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文件,然后与它们交互,设置断点等。
答案 2 :(得分:5)
尝试Spyder,我花了一整天的时间试图找到一个具有ipython和Spyder功能的IDE,只是将它踢出公园..
自动完成是安装的最佳选择,没有配置文件和所有垃圾,它在角落有一个Ipython终端,可以立即运行你的代码。
大拇指
答案 3 :(得分:4)
看看DreamPie。可能就是你要找的东西。
答案 4 :(得分:3)
就个人而言,我喜欢PyScripter。不幸的是,它只能在Windows上运行,但在Wine中运行也很完美。
答案 5 :(得分:2)
如果您喜欢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
如果您的口译员错过了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 qtconsole
或jupyter 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
的优势: