当前位置: 首页 > 知识库问答 >
问题:

使用ipython在pycharm中完成REAL代码

胡夕
2023-03-14

许多python IDE都标榜提供代码完整性(代码洞察力),PyCharm就是其中之一。然而,在我看来,提供的代码完成是极其有限的。让我举一个例子来说明:

import numpy as np
m = np.random.random((3,5))
m.

在“m.”之后按 CTRL 空格不会给我任何代码完成,无论我;)用力敲它。我想这是因为 IDE 必须进行类型推断才能知道变量“m”的类型,这在动态编程语言领域并非易事。

现在,PyCharm附带了一个名为“收集运行时类型信息以进行代码洞察”的设置,这听起来确实很有希望。然而,它似乎并没有解决上面提到的问题…我仍然无法在变量'm'上获得代码完成。

到目前为止,我只找到了一种在PyCharm中获取变量代码完成的方法:

import numpy as np
m = np.random.random((3,5))
''':type : np.matrix'''
m.

在这个例子中,当在“m”之后按CTRL-space时,我能够获得代码完成,这是因为我通过使用文档字符串指定变量的类型来帮助IDE。然而,我对这种获得代码完成的方式不满意,因为它为所有这些文档字符串的代码增加了不必要的冗长(更不用说所有额外的键盘输入)…

现在,如果我们在linux终端中启动IPython,并输入第一段代码,我们将能够一路完成代码,即使是变量“m”。(其中IPython中的代码完成是通过按TAB键而不是CTRL空格键实现的)。。

我没有太多关于IPython的经验,但是我相信我听说过一些关于IPython不断循环执行代码之类的事情...

我认为应该可以使用IPython在PyCharm编辑器中的所有变量上实现真正的代码完成……

有没有办法设置PyCharm使用IPython来完成代码?

请注意,我不满意将代码发送到终端窗口/控制台,或类似的东西,我想在 PyCharm 的编辑器中完成代码......

我看过类似这样的问题,在Pycharm Ubuntu中添加ipython作为解释器,但它似乎是关于在控制台中使用IPython,-而不是在编辑器中...在IDE中也有很多关于代码完成的问题,但是它们似乎都有和PyCharm一样令人不满意的代码完成水平...

  • 操作系统:Debian测试
  • python:Python3和IPython3
  • IDE:Py魅力3.0.2专业版

共有3个答案

孙凌龙
2023-03-14

要在py魅力中实现类似iPython的功能,您可以通过两种方式做到这一点:

>

  • 设置断点,并调试代码。当它到达断点时,转到编辑器正下方的控制台选项卡,并通过单击显示命令行的按钮启动命令行

    从您的控制台启动python命令行(无需运行调试器),通过单击工具,运行Python控制台

  • 陈成济
    2023-03-14

    我也有同样的问题,我在这里找到了答案:https://www.jetbrains.com/pycharm/help/using-ipython-notebook-with-pycharm.html

    您需要做的是在项目工具窗口中创建一个 ipython 笔记本。这是一个扩展名为“.ipynb”的文件。右键单击要放置文件的目录,选择“新建-

    方祺
    2023-03-14

    它无法判断函数的返回是什么(不需要实际运行脚本,这就是为什么ipython知道它是什么(它实际上运行了代码并接收回了一个它可以自省的对象)

    如果您想完成代码而不必实际执行脚本直到输入文本的位置,则必须执行额外的步骤

    import numpy as np
    m = np.random.random((3,5))
    assert isinstance(m,np.ndarray)
    m. #now you get code completion (since the IDE now knows the class of m, without having to execute your script)
    
     类似资料:
    • 问题内容: 通过 我可以在此处找到记录的Word对象。但是,的自动补全功能不知道该API,是否可以添加它? 问题答案: 也许在IPython中完成代码完成的最简单方法(已通过6.2.1测试,请参见下面的答案以获取与7.1兼容的代码段),而Jupyter则是运行以下代码段: 长话短说 随着被概述了一些更多的细节本指南,附带一个脚本,用于产生Python类型对应于一个给定的COM对象的类型库。 对于W

    • 每当我创建一个函数,使其成为视图并将模板映射到它上面时,PyCharm 中的自动完成功能都可以工作。如果您输入类似 { 的内容,其中 是一个模型,并且是您的上下文对象之一,那么它将为您提供一个下拉菜单,其中包含可能的完成。 然而,如果你创建了一个基于类的视图,那么这是行不通的。我能解决这个问题吗?

    • 当我在PyCharm中手动停止脚本时,进程以退出代码137结束。但是我没有停止剧本。还有出口代码137。有什么问题? Python版本是3.6,在运行xgboost.train()方法时进程完成。

    • 问题内容: 我想在Eclipse上完成Opencv 2.3的源代码完成工作。我怎样才能做到这一点?程序可以正常运行,但是显示完成[ctrl + space]:“无默认建议”。 问题答案: 对于C / C ++: 在Eclipse中使用CDT 在项目的根目录中,创建项目的Makefile: cmake -G’Eclipse CDT4-Unix Makefiles’ 使用 Eclipse- > Fil

    • 我只是尝试在我的 django 项目中使用 HAML,它工作正常^^ 但是,在编写漂亮的 HAML 代码时,PyCharm 拒绝为 django 模板标签提供任何代码完成或语法突出显示,例如在 HTML 文件中。 我需要以不同的方式配置PyCharm吗?还是用PyChar无法在HAML文件中获得“Django支持”? 先谢谢了

    • 我在使用clang的代码完成机制时正在研究潜在的代码完成加速。下面描述的流程是我在Anders Bakken的rtages中发现的。 翻译单元由守护程序监控文件解析以查找更改。这是通过调用和相关函数(,)完成的。当用户在源文件中的给定行和列处请求完成时,守护程序将源文件的最后保存版本和当前源文件的缓存翻译单元传递到。(Clang Code完整文档)。 传递给(来自CompletionThread: