有没有类似于RStudio的Python集成开发环境?

187

在RStudio中,您可以在代码编辑窗口中运行代码的部分,其结果会显示在控制台中。

您还可以进行很酷的操作,例如选择您希望运行光标之前的所有内容、运行光标之后的所有内容或仅选择的部分等等。而且这些操作都有快捷键。

这就像是Python中交互式shell的升级版--在那里,您可以使用readline返回到以前的单个行,但它没有任何关于函数、代码段等的“概念”。

是否有类似Python的工具?或者,您是否有某种类似的解决方法,例如在vim中使用?


除此之外,在RStudio中还支持.Rnw文件,我发现这对于创建自动化pdf文件非常有用。我仍在寻找一个好的Python IDE。 - moldovean
1
你可以在Rstudio中查看变量详情,最重要的是帮助文件。 - Ankit
29
Eclipse PyDev、Jupyter和Spyder / Anaconda都是不错的替代品,但它们没有RStudio易于使用。 RStudio具有代码自动补全、快捷键切换区域、交互式安装包、可重新排列顺序的选项卡和文档窗格等功能,这些都使得RStudio更易于使用。Python作为一种语言具有一些巨大的优势,但依我之见,没有任何Python IDE可以达到RStudio的水平。 - user4458796
2
我开始使用Rodeo,然而它非常容易出错。没有什么可以与RStudio相比。Python在数据分析和探索方面始终存在弱点,直到有一个以数据分析和探索为主要目标的合适的IDE被开发出来。 - codingknob
"Eclipse PyDev、Jupyter 和 Spyder/Anaconda 都是不错的替代品......它们都是不同的东西,我不明白为什么要把它们放在一起。Eclipse 是一个 IDE,Jupyter 是一个交互式工作簿,而 Spyder 甚至不能与 PyCharm 等相提并论。此外,它们都不支持 RStudio 的大多数功能。" - gented
4
RStudio现在支持Python:https://blog.rstudio.com/2018/10/09/rstudio-1-2-preview-reticulated-python/ - Oliver Oliver
10个回答

54

IPython Notebook非常棒。这是我最近发现的另一个基于浏览器的新工具:Rodeo。我的印象是,它似乎更好地支持类似于RStudio的工作流程。

Rodeo截图


2
太棒了!在我看来,RStudio是数据分析的最佳UI,一直在寻找类似于Python的东西。 - visitantz
4
Yhat于2016年发布了Rodeo 2.0,是Windows、Mac和Linux的本地应用程序而非浏览器工具。它比以前更加稳定,并且具有许多新功能,例如语法高亮和集成教程。如果您喜欢RStudio的话,一定值得一试! - Elise Breda
10
我对2017年初的印象是,Rodeo仍然感觉像一个非常新的项目,在功能或UI自定义方面无法与RStudio相比,并且似乎存在许多错误。我认为Spyder更加成熟,接近成为真正的RStudio替代品,但因人而异。 - Jealie
广告:“本地应用而非浏览器工具”:从我所看到的,Rodeo 2.0使用Electron。它仍然是一个浏览器工具,只不过现在它带有自己的浏览器,使其感觉像是本地应用程序。(值得一提的是,它还依赖于NodeJS。) - Phillip
1
提供的链接似乎目前(2019-03)已过时。我发现了这个线程,其中指出了Rodeo的一般问题:github.com/yhat/rodeo/issues/655 - Qaswed

34

使用Spyder或安装Python(x,y)。它很棒。

如果您是新手,可以安装免费的Anaconda套件(http://continuum.io/downloads.html),它将为您安装Spyder以及Python 2.7和IPython。Spyder与RStudio非常相似。


6
我已经寻找了一段时间类似于R的工作流程,使用Python的文本编辑器,并且看起来Spyder可以胜任。我有一个文本编辑器窗口和一个Python窗口。我在文本编辑器中突出显示几行代码,按F9键,它们就会在解释器中运行。虽然简单,但正是我一直在寻找的。 - kpierce8
Spyder是一个很好的本地RStudio替代品(尽管它缺乏服务器版本的易于远程浏览器访问)。 - Michael

34

Jupyter Notebook(之前被称为IPython笔记本)是一个对于Python(以及其他编程语言,包括R)交互式数据操作的很酷的项目。它基本上允许您在一个界面中交互式地编写和记录正在进行的工作,并将其保存为:

  • notebook( .ipynb )
  • script(一个只包含源代码的 .py 文件)
  • 静态HTML(因此也可以导出为PDF)

您甚至可以使用nbviewer服务在线共享您的笔记本,人们可以发布整个书籍。此外,GitHub还可以渲染您的 .ipynb 文件。您可以将Jupyter笔记本作为可再现研究文章发表在Authorea上。要进行多用户协作编辑,请查看基于Jupyter构建的Google Colab

Jupyter Notebook Screenshot

默认情况下,Jupyter Notebook版本在本地启动Web应用程序(或将其部署到服务器)并从浏览器中使用。正如Ryan在他的答案中提到的那样,Rodeo是一个更类似于RStudio的界面,基于Jupyter内核构建。

JupyterLab是对UI的新尝试,允许您更灵活地编辑笔记本、控制交互式小部件甚至在终端模拟器中运行命令。

还有一个IPython Qt控制台,它是一个类似项目,具有内联图形功能,并且是一个桌面应用程序。

Jupyter是一个普通的Python包,可以使用pip install jupyter进行安装。但是,要在计算机上运行所有科学类库可能更容易尝试官方Jupyter Docker容器。例如,假设您的笔记本位于〜/code/jupyter,则可以将容器作为以下方式运行:

docker run -it --rm -p 8888:8888 -v ~/code/jupyter:/home/jovyan/work jupyter/datascience-notebook

然而,有一个非常重要的区别:在运行RStudio Web服务器的机器上拥有帐户的人可以登录到服务器并通过相同的端口以“时间共享”的方式使用它。IPython 2.x不支持此功能:如果您想让两个人在同一台服务器上访问它,则必须在2个不同的端口上运行2个服务器实例,这不容易扩展。 - András Aszódi
是的,没错。IPython 3.x的初始工作已经完成以支持多用户笔记本。 - metakermit
3
另一个关键的区别是“笔记本”的(在我看来)荒谬的格式。在RStudio中,您可以打开脚本,将其传递给解释器,然后与解释器交互。脚本在一侧,解释器在另一侧。因为IPython有自己的格式,所以您不能简单地打开一个脚本,如果在笔记本中编辑,则处于不同的格式中。 - Michael
你可以将脚本完全导入为模块,然后在笔记本内调整任何变量或函数定义。反过来,你也可以直接将IPython笔记本导出为.py文件。虽然它不是一个IDE。 - metakermit
1
@kermit666 我目前使用的多用户笔记本电脑Web访问解决方案是JupyterHub(https://github.com/jupyter/jupyterhub)。它运行得非常好。强烈推荐。 - András Aszódi
显示剩余2条评论

23

如果你正在寻找类似于RStudio的Python集成开发环境,那么可以看看Yhat公司的Rodeo

Rodeo有以下特点:

  • 文本编辑器(底层使用Atom)
  • Vim / Emacs模式
  • 一个IPython控制台
  • 自动补全功能
  • 文档字符串
  • 可以查看绘图、数据帧和变量

1
提供的链接目前(2019-03)似乎已经过时。我发现了这个帖子,其中提到了Rodeo的一般问题:https://github.com/yhat/rodeo/issues/655 - Qaswed
Rodeo已被其开发者放弃。因此,自2017年以来,这个IDE没有任何更新。在我看来,Spyder现在是下一个最好的选择。 - Rahib

21
您可能需要了解 JupyterLab(Jupyter Notbooks 的下一代):https://github.com/jupyter/jupyterlab。JupyterLab 旨在在 Web 上创建更具桌面化体验的环境。
更新:截至 2018 年 3 月,JupyterLab 处于 beta 版本。"beta 版本适用于普通用户。对于 JupyterLab 扩展开发人员,扩展 API 将持续发展直到 1.0 发布。最终,JupyterLab 将在达到 1.0 后取代经典的 Jupyter Notebook。"
要将 Jupyter Lab 运行为桌面应用程序,请参见christopherroach.com/articles/jupyterlab-desktop-app(感谢 PatrickT)。
这里是一个快速预览: enter image description here 您可以将笔记本排列在监视系统的图形控制台的顶部,而将文件管理器保留在左侧: enter image description here 有关更多详细信息,请参见:https://blog.jupyter.org/2016/07/14/jupyter-lab-alpha/http://www.techatbloomberg.com/blog/inside-the-collaboration-that-built-the-open-source-jupyterlab-project/

1
看起来不错。这会在你的浏览器中打开(显然你没有提到它)。我觉得这很烦人。如果我要使用这个,我会设置一个专用的浏览器。是否有推荐的浏览器适用于JupyterLab? - PatrickT

15

Pycharm是一款非常不错的集成开发环境。就我目前所见,它与Rstudio最相似。另一个好处是,它允许您以类似于Rstudio的方式安装新的Python库(否则可能会很麻烦)。现在有一个免费的“社区”版本。

输入图像描述


我想补充一下,它支持jupyter/ipython文件,所以你可以将它与最佳答案结合起来使用。(不确定这是否是免费版本的一部分)。 - Mark
PyCharm还可以让您运行所选的代码! - 4d11

7
我认为值得一提的是,RStudio v1.1.359预览版已经发布。它具有可用于Python的终端功能。
下载链接在此这里
文档可以在此找到

4

Spyder是你需要的工具!https://code.google.com/p/spyderlib/
Spyder(之前被称为Pydee)是一款强大的Python语言交互式开发环境,具有先进的编辑、交互式测试、调试和内省功能。


0

如果你想要一个更好的Python交互式shell,可以看看DreamPie。虽然它不像RStudio那样是一个IDE。


0

Wing IDE,以及可能还有其他像PyCharm和PyDev这样的Python IDE都具有此类功能。在Wing中,您可以选择并在集成的Python Shell中执行代码,或者如果您正在调试某些内容,则可以在shell(称为Debug Probe)中与暂停的调试程序进行交互。此外,还特别支持matplotlib,以防您使用它,以便您可以交互式地处理图表。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接