タブを使用せずにjupyterノートブックでオートコンプリートを取得するにはどうすればよいですか?


100

ノートブックでオートコンプリート機能を利用したいのです。つまり、何かを入力すると、ドロップダウンメニューが表示され、タブボタンを押さなくても、入力できるすべての可能な項目が表示されます。そんなことありますか?

私は試した :

%config IPCompleter.greedy = True

しかし、これにはタブボタンを押す必要があります

回答:


91

呼ばれる拡張機能がありヒンターランドタイピング自動的にドロップダウンメニューが表示されますjupyterためには、。他にもいくつかの便利な拡張機能があります。

拡張機能をインストールするには、このgithubリポジトリのガイドに従ってください。拡張機能を簡単にアクティブ化するには、拡張機能設定ツールを使用することができます


3
Jupyter Notebookを実行しているリモートマシンを使用していて、ブラウザを介してローカルマシンから使用している場合、拡張機能はどこにインストールすればよいですか?
thebeancounter

2
@thebeancounterローカルにのみ拡張機能がインストールされています。つまり、ブラウザーを介してノートブックにアクセスするマシン上にあります。jupyterノートブックを実行するリモートマシンに拡張機能をインストールしていません。
physicsGuy 2018

5
私はhinterlandをインストールしましたが、基本的なpythonのものだけをオートコンプリートしますが、モジュール関数(pd、npなど)をオートコンプリートしません。pycharmのようにオートコンプリートする方法はありますか。
thebeancounter 2018

@thebeancounter私にとってhinterlandはnumpyやpandasなどのモジュールで動作します。相対的なインポートimport numpy as npと入力を行ってもnp、提案が表示されます(例:np.abs)。この問題のトラブルシューティングを行うには、セットアップの詳細が必要です。問題について別の質問を開くことをお勧めします。
physicsGuy 2018

2
私のようなJupyterノートブックに慣れていない人たち、1)については、これらのものをインストールするには、公式の指示に従ってください:jupyter-contrib-nbextensions.readthedocs.io/en/latest/... 2)ブラウザコンフィギュレータのUIをインストールし、以下:github.com / jupyter-のcontrib / jupyter_nbextensions_configuratorターミナル3)オープンjupyterノートブックを使用してコマンド:jupyter notebook
ジェイソン

33

Jupyter Notebookのオートコンプリートは、奥地の拡張を使用しても非常に弱いです。ディープラーニングベースのコードのオートコンプリートのアイデアをありがとう。ディープラーニングに基づくコードのオートコンプリートを提供するTabNineに基づくJupyter Notebook Extensionを開発しました。これが私の作品のGithubリンクです: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

デモ


よく働く!しかし、Jupyter Notebookでは新しい行(Shift + Enter)が機能しなくなってしまいました。そのための回避策はありますか?
Harvey、

@Harveyこんにちは、私はEnter誤操作を避けるために最初のものをブロックします。ヒントウィンドウが表示されている場合、最初Enterのウィンドウがウィンドウを閉じます。現時点では、ヒントが表示されているときに新しい行が必要な場合は、発行Enterしてから発行することができますEnter(または、現在のセルを実行して新しいセルを作成する場合はShift+ Enter)。それが良いデザインかどうかはわかりません。あなたの伐採と提案を私に知らせてください。
ウェンミンウー

私のラップトップのキーボードでは「fn」+「Enter」が機能します。私は慣れてきました。予想される動作は、セルの新しい行の場合はAlt + Enter、実行の場合はShift + Enterでした。とにかく、このプラグインがいかに便利かを考えると、これはほんの小さなことです。ありがとうございました!
ハーヴェイ

Permission deniedjupyterをインストールしようとしたときにエラーが発生する可能性がある場合は--user、jupyter installコマンドで追加してください。
Yuen Tau

1
また、一種の警告です。TabNineは、大量のメモリとCPUリソースを消費する可能性があります。私の場合、WSL(Ubuntu 18.04)からjupyter Notebookを実行し、TabNineは約1.5GBのメモリを消費します。タスクマネージャーからタスクを終了すると、Jupyterノートブックに次回入力したときにTabNineが自動起動するため、使用されるメモリは200 MBまで低下する可能性があります。詳細はgithub.com/zxqfl/TabNine/issues/43をご覧ください。
Yuen Tau

11

上記の@physicsGuyで述べたように、hinterland拡張機能を使用できます。それを行うための簡単な手順。

conda forgeチャネルを使用してnbextensionをインストールします。condaターミナルで以下のコマンドを実行するだけです:

conda install -c conda-forge jupyter_nbextensions_configurator

後背地拡張を有効にする次のステップ。condaターミナルで以下のコマンドを実行します。

jupyter nbextension enable hinterland/hinterland

これで完了です。


5
Enabling notebook extension hinterland/hinterland... - Validating: problems found: - require? X hinterland/hinterlandこれは、これを行う際のエラーです
Darshu Bc

この2つのコマンドjupyter contrib nbextension install --systemを 実行してjupyter contrib nbextension install --userから、リストを表示するにはjupyter nbextension list
PiotrK

8

これを実行することなく%config IPCompleter.greedy=True、あなたがこのようにnumpyのか、パンダのようなパッケージをインポートした後、 import numpy as np import pandas as pd

次に、入力しpd.てタブボタンをタップすると、非常に簡単で簡単に使用できるすべての方法が表示されます。


7

Jupiter Notebook 5.6.0を使用しています。ここで、自動提案を取得するには、少なくとも1つの文字を入力した後、Tabキーを押すだけです。

 **Example:** Enter character `p` and hit Tab.

インポートされたライブラリ内のメソッドとプロパティを取得するには、アリスで同じタブキーを使用します

  import numpy as np

  np. --> Hit Tab key

1

以下をjupyter labのキーボードユーザー設定に追加します(設定->高度なシステムエディター)

{
    "shortcuts":[
        {
            "command": "completer:invoke-file",
            "keys": [
                "Ctrl Space"
            ],
            "selector": ".jp-FileEditor .jp-mod-completer-enabled"
        },
        {
            "command": "completer:invoke-file",
            "keys": [
                "Ctrl Space"
            ],
            "selector": ".jp-FileEditor .jp-mod-completer-enabled"
        },
        {
            "command": "completer:invoke-notebook",
            "keys": [
                "Ctrl Space"
            ],
            "selector": ".jp-Notebook.jp-mod-editMode .jp-mod-completer-enabled"
        }

    ]
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.