탭을 사용하지 않고 jupyter 노트북에서 자동 완성을 얻는 방법은 무엇입니까?


102

노트북에서 자동 완성 기능을 사용하고 싶습니다. 즉, 입력 할 때 탭 버튼을 누르지 않고도 입력 할 수있는 모든 항목이 포함 된 드롭 다운 메뉴가 나타납니다. 그런 것이 있습니까?

나는 시도했다 :

% config IPCompleter.greedy = 참

하지만 이렇게하려면 탭 버튼을 눌러야합니다.

답변:


92

입력 할 때 드롭 다운 메뉴를 자동으로 표시하는 jupyter 용 Hinterland 라는 확장 프로그램이 있습니다 . 다른 유용한 확장 기능도 있습니다.

확장 기능을 설치하려면이 github 저장소 의 가이드를 따르세요 . 확장 기능을 쉽게 활성화하려면 확장 구성 자를 사용할 수 있습니다 .


3
jupyter 노트북을 실행하는 원격 컴퓨터를 사용하고 있고 브라우저를 통해 로컬 컴퓨터에서 사용하는 경우 확장 프로그램을 어디에 설치해야합니까?
thebeancounter

2
@thebeancounter 브라우저를 통해 노트북에 액세스하는 컴퓨터에 로컬로만 확장 프로그램을 설치했습니다. jupyter 노트북을 실행하는 원격 컴퓨터에 확장 프로그램이 설치되어 있지 않습니다.
physicsGuy

5
힌터 랜드를 설치했고 기본 파이썬 항목 만 자동 완성하지만 모듈 기능 (예 : pd, np 등)을 자동 완성하지 않습니다. pycharm과 같은 기능을 어떻게 자동 완성 할 수 있습니까?
thebeancounter

@thebeancounter 나를 위해 hinterland는 numpy 및 pandas와 같은 모듈로 작동합니다. 상대 가져 오기를 수행 import numpy as np하고를 입력 하더라도 np제안 사항이 표시됩니다 (예 : np.abs). 이 문제를 해결하려면 설정에 대한 자세한 내용이 필요합니다. 귀하의 문제에 대해 별도의 질문을 여는 것이 좋습니다.
physicsGuy

2
저처럼 Jupyter Notebook에 익숙하지 않은 사용자는 1) 공식 지침에 따라 다음을 설치합니다. jupyter-contrib-nbextensions.readthedocs.io/en/latest/… 2) 브라우저 구성 기 UI를 설치합니다. github.com / Jupyter-contrib / jupyter_nbextensions_configurator 3) 터미널에서 명령을 사용하여 jupyter 노트북을 엽니 다.jupyter notebook
Jason

33

Jupyter Notebook의 자동 완성 기능은 배후 확장에도 매우 약합니다. 딥 러닝 기반 코드 자동 완성 아이디어에 감사드립니다. 저는 Deep Learning을 기반으로 코드 자동 완성 기능을 제공하는 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

데모


잘 작동합니다! 그러나 그것은 내 새 줄을 죽였습니다 (Shift + Enter)는 Jupyter Notebook에서 더 이상 작동하지 않습니다. 그에 대한 해결 방법이 있습니까?
Harvey

@Harvey 안녕하세요, Enter오작동을 피하기 위해 첫 번째 를 차단합니다 . 힌트 창이 표시되면 첫 번째 Enter창이 창 닫기를 트리거합니다. 지금은 힌트가 표시 될 때 새 줄을 원하면 발급 Enter한 다음 발급 할 수 있습니다 Enter(또는 현재 셀을 실행하고 새 셀을 만들려면 Shift+ Enter). 좋은 디자인인지 확실하지 않습니다. 당신의 벌목과 제안을 저에게 알려주십시오.
Wenmin Wu

내 노트북 ​​키보드에서 ´fn´ + ´Enter´가 작동합니다. 더 익숙해지고 있어요. 예상되는 동작은 셀의 새 줄에 Alt + Enter, 실행에 Shift + Enter입니다. 어쨌든이 플러그인이 얼마나 유용한지를 고려하면 이것은 사소한 것입니다. 감사합니다!
Harvey

Permission deniedjupyter를 설치하려고 할 때 오류가 발생할 수있는 경우 --userjupyter install 명령으로 추가하십시오 .
Yuen Tau

1
또한 친절한 경고 : TabNine은 많은 양의 메모리와 CPU 리소스를 차지할 수 있습니다. 제 경우에는 WSL (Ubuntu 18.04)에서 jupyter 노트북을 실행하고 TabNine은 ~ 1.5GB 메모리를 차지합니다. 작업 관리자에서 작업을 종료하면 사용되는 메모리가 ~ 200MB까지 떨어질 수 있으며 TabNine은 다음에 jupyter 노트북에 입력 할 때 자동으로 부팅됩니다. 자세한 내용은 github.com/zxqfl/TabNine/issues/43 에서 확인 하세요 .
Yuen Tau

12

위에서 @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

이 두 명령을 실행 jupyter contrib nbextension install --system하고 jupyter contrib nbextension install --user다음이 목록 볼jupyter nbextension list
PiotrK

8

%config IPCompleter.greedy=True이런 식으로 numpy 또는 pandas와 같은 패키지를 가져온 후에는 이렇게하지 않습니다 . import numpy as np import pandas as pd.

그런 다음 입력 pd.하고 탭 버튼을 탭하면 사용 가능한 모든 방법이 매우 쉽고 간단하게 표시됩니다.


7

Jupiter Notebook 5.6.0을 사용하고 있습니다. 여기에서 자동 제안을 받으려면 적어도 한 문자를 입력 한 후 Tab 키를 누르기 만하면됩니다.

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

가져온 라이브러리 내에서 메서드와 속성을 가져 오려면 Alice와 동일한 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"
        }

    ]
}

0

나는 배후지를 제안 할 것이다 확장 합니다.

다른 답변에서는 pip에서 설치하는 방법을 찾을 수 없으므로 이것이 설치하는 방법입니다.

먼저 다음을 실행하여 jupyter contrib nbextensions를 설치합니다.

pip install jupyter_contrib_nbextensions

다음을 실행하여 jupyter 용 js 및 css 파일을 설치합니다.

jupyter contrib nbextension install --user

그리고 마지막 실행에서

jupyter nbextension enable hinterland/hinterland

마지막 명령의 출력은 다음과 같습니다.

Enabling notebook extension hinterland/hinterland...
      - Validating: OK
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.