【发布时间】:2014-01-31 17:28:52
【问题描述】:
许多 python IDE 都以提供代码完成(代码洞察力)而自豪,PyCharm 就是其中之一。但是,在我看来,提供的代码完成功能非常有限。让我举个例子来说明:
import numpy as np
m = np.random.random((3,5))
m.
在 'm.' 之后按 CTRL-空格键不会给我任何代码完成,-无论我多么努力;)..我想这是因为 IDE 必须进行类型推断才能知道变量“m”的类型,而这不是t 在动态编程语言领域中微不足道。
现在,PyCharm 带有一个名为“收集运行时类型信息以获取代码洞察力”的设置,这听起来确实很有希望。但是,它似乎并没有解决上面提到的问题。我仍然无法完成变量“m”的代码完成。
到目前为止,我只找到了一种方法来完成 PyCharm 中变量的代码:
import numpy as np
m = np.random.random((3,5))
''':type : np.matrix'''
m.
在这个例子中,我可以在“m.”之后按 CTRL-空格键来完成代码,这是因为我通过使用文档字符串指定变量的类型来帮助 IDE。然而,我对这种获取代码完成的方式并不满意,因为它为所有这些文档字符串的代码添加了不必要的冗长(更不用说所有额外的键盘输入)......
IPython 来救援..(也许?)
现在,如果我们在 linux 终端中启动 IPython,并输入第一段代码,我们将能够一直完成代码,即使对于变量“m”也是如此。 (IPython 中的代码补全是通过按 TAB 而不是 CTRL 空格来实现的)..
我对 IPython 没有太多经验,但我相信我听说过一些关于 IPython 不断在循环中执行代码或类似的事情......
我在想应该可以使用 IPython 在 PyCharm 的编辑器中实现所有变量的 REAL 代码完成......
有没有办法设置 PyCharm 使用 IPython 完成代码?
请注意,我不满意将代码发送到终端窗口/控制台或类似的东西,我希望在 PyCharm 的编辑器中完成代码...
我看过像Adding ipython as an interpreter in Pycharm Ubuntu 这样的问题,但它似乎是关于在控制台中使用 IPython,而不是在编辑器中......还有很多关于 IDE 中的代码完成的问题,但他们所有的代码完成度似乎都与 PyCharm 一样令人不满意......
我的设置
- 操作系统:Debian 测试
- python:Python3 和 IPython3
- IDE:Pycharm 3.0.2 专业版
【问题讨论】:
-
我认为问题在于 IPython 是某种 python 解释器,而 PyCharm(与许多其他 IDE 一样)只是某种(非常goog!)文本编辑器。简而言之,一个在您键入时执行代码,另一个编辑稍后您运行的脚本
-
但我不明白为什么 PyCharm 编辑器不能(以某种方式)咨询 IPython 以使真正的代码完成成为可能......我猜 pycharm 会运行得更慢, - 但我认为这是可以接受的。
标签: python python-3.x ipython pycharm code-completion