iPython Code Completion / Intellisense on Dot可能吗?

时间:2015-11-13 19:09:13

标签: python ipython

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

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

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

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

为了使这个问题超级具体,我不会询问使用任何其他IDE;我非常具体地询问了iPython,并想知道是否有办法设置某种配置来实现准确的&#34; dot&#34;按下&#34; dot&#34;时立即显示选项(没有时间延迟)。

enter image description here

下面的示例显示了Desktop,它显然不是pd.read_csv()的参数。

enter image description here

6 个答案:

答案 0 :(得分:45)

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

enter image description here

或者,调用zip?会在窗口底部打开一个文档窗格。

就工具提示自动打开,我不确定。我猜想通过配置是不可能的。

答案 1 :(得分:8)

近3年后,我终于找到了一个潜在的解决方案。

答案:安装nbextensions并启用Hinterland扩展程序。

  

为代码单元中的每个按键启用代码自动完成菜单,   而不是仅使用tab调用它。

这是您的工作:

  1. pip install jupyter_contrib_nbextensions
  2. jupyter contrib nbextension install --user
  3. 启动jupyter notebook(浏览器启动)
  4. 标签之一现在应显示“ Nbextensions
  5. 在那里,您会找到“ 腹地”。选中复选框以启用。

腹地有一些可调选项,例如:

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

enter image description here

答案 2 :(得分:6)

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

%config IPCompleter.greedy =真

它也将为您工作。

答案 3 :(得分:2)

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

它现在在pypi index上可用。只需发出以下命令,然后使用它即可:)

pip3 install jupyter-tabnine
jupyter nbextension install --py jupyter_tabnine
jupyter nbextension enable --py jupyter_tabnine
jupyter serverextension enable --py jupyter_tabnine

demo

答案 4 :(得分:1)

这对我有用:

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
jupyter notebook

要查看Nbextensions选项卡(如果有的话)被隐藏:

jupyter nbextensions_configurator enable --user
  • 在Nbextensions下取消选中“在没有明确兼容性的情况下禁用nbextensions的配置...”(免责声明-所有风险均由您承担)
  • 仅选择
    • “腹地”用于格式化。我选择了其他一些nbextensions,但由于某种原因它不起作用。
    • “ Nbextension编辑菜单项”和“ Nbestenision仪表板选项卡”(以便下次再次看到此选项卡)

enter image description here

答案 5 :(得分:0)

对于Mac中的JupyterLab,只需按 tab