点上的iPython代码完成/智能感知可能吗?

Jar*_*rad 45 python ipython

当有人试图学习Python的细节(强调科学计算 - 即:熊猫,numpy,scikit-learn)时,大多数大师似乎都在推荐和使用iPython笔记本.作为初学者/中级编码器,我最大的难点在于我需要从IDE中获取代码完成/智能感知功能来学习函数参数.我还没有简单地知道当前开发中可用的参数.

在iPython中,我注意到我可以按下Tab以显示选项的下拉菜单(见下面的pd.)但我不想每次都打.这对我的需求来说不是用户友好的.相反,当我按下dot时,我希望它只显示可用的类和方法.

其次,我注意到如果我说的话pd.read_csv(<TAB>,我会得到比实际参数更多的选项read_csv.

问题:按下点/句点后,iPython可以立即自动显示准确的代码完成选项吗?另外,有没有办法将其配置为仅在函数内显示可用的函数参数?

为了使这个问题超级具体,我不是要求使用任何其他IDE; 我只是非常具体地询问iPython,并想知道是否有办法设置某种配置,以便在按下"点"(没有时间延迟)时立即获得准确的"点"显示选项.

在此输入图像描述

下面的例子显示Desktop哪个显然不是参数pd.read_csv().

在此输入图像描述

jme*_*jme 52

您可以按<Shift>-<Tab>以获取显示该功能签名的工具提示:

在此输入图像描述

或者,调用zip?将在窗口底部打开文档窗格.

至于自动打开工具提示,我不确定.我想通过配置是不可能的.

  • 两种快捷方式都不会显示有关类成员,函数参数或任何内容的任何提示。我还应该安装其他什么来启用? (2认同)

Jar*_*rad 17

差不多3年后,我终于遇到了一个潜在的解决方案.

答案:安装nbextensions并启用Hinterland扩展.

为代码单元格中的每个按键启用代码自动完成菜单,而不是仅使用选项卡调用它.

这是你做的:

  1. pip install jupyter_contrib_nbextensions
  2. jupyter contrib nbextension install --user
  3. 开始jupyter notebook(浏览器启动)
  4. 其中一个标签现在应显示" Nbextensions "
  5. 在那里,你会发现" 腹地 ".选中此框以启用.

Hinterland有一些可调节的选项,如:

  • hinterland.hint_delay:按键和提示请求之间的延迟(以毫秒为单位).
  • hinterland.enable_at_start:是否在首次打开笔记本时启用hinterland的连续提示,或者仅当从帮助菜单项中选择时才启用.
  • hinterland.hint_inside_comments:是否在键入代码注释时请求提示.默认为false.
  • 其他正则表达式选项:hinterland.exclude_regexp,hinterland.include_regexp,hinterland.tooltip_regexp

在此输入图像描述


Wen*_* Wu 8

现在有一个更好的方法来获得准确的代码完成操作。它可以由您键入的任何字符触发。受 TabNine 的启发,我为 Jupyter Notebook Jupyter TabNine开发了一个代码自动完成扩展。

它现在可以在pypi 索引上使用。只需发出以下命令,然后享受它:)

pip3 install jupyter-tabnine
jupyter nbextension install --py jupyter_tabnine
jupyter nbextension enable --py jupyter_tabnine
jupyter serverextension enable --py jupyter_tabnine
Run Code Online (Sandbox Code Playgroud)

演示


Vit*_*ata 7

这对我有用:

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
jupyter notebook
Run Code Online (Sandbox Code Playgroud)

如果有东西隐藏了它,要查看 Nbextensions 选项卡:

jupyter nbextensions_configurator enable --user
Run Code Online (Sandbox Code Playgroud)
  • 在 Nbextensions 下取消选中“在没有明确兼容性的情况下禁用 nbextensions 的配置......”(免责声明 - 这样做的所有风险都是你的)
  • 选择
    • “腹地”用于格式化。我选择了其他一些 nbextensions,但不知何故它不起作用。
    • “Nbextension 编辑菜单项”和“Nbestenision 仪表板选项卡”(为了下次再次看到此选项卡)

在此处输入图片说明


小智 6

如果您使用的是Jupyter笔记本并且您的Intellisense无法正常工作,请在下面键入以下内容,并在(。)后按Tab。

%config IPCompleter.greedy =真实

它也会为您服务。

  • 对于我来说,很难说这是否回答了他们的问题,或者仅建议在`.`之后按Tab(这显然是用户希望在他们的问题中避免的东西)。 (3认同)