Jupyter not defterinde sekme kullanmadan otomatik tamamlama nasıl elde edilir?


109

Defterlerde bir otomatik tamamlama özelliği almak istiyorum, yani bir şey yazdığımda, sekme düğmesine basmak zorunda kalmadan yazabileceğim tüm olası şeyleri içeren bir açılır menü beliriyor. Böyle bir şey var mı?

Denedim :

% config IPCompleter.greedy = Doğru

ancak bu, sekme düğmesine basılmasını gerektirir

Yanıtlar:


98

Yazarken açılır menüyü otomatik olarak görüntüleyen Jupyter için Hinterland adlı bir uzantı var . Başka yararlı uzantılar da var.

Uzantıları yüklemek için bu github deposundaki kılavuzu takip edebilirsiniz . Uzantıları kolayca etkinleştirmek için, uzantı yapılandırıcısını kullanmak isteyebilirsiniz .


3
Jupyter dizüstü bilgisayar çalıştıran bir uzak makine kullanıyorsam ve bunu yerel makinemden tarayıcı aracılığıyla kullanıyorsam, uzantıları nereye kurmalıyım?
thebeancounter

2
@thebeancounter Uzantıyı yalnızca yerel olarak kurdum, yani dizüstü bilgisayara tarayıcı aracılığıyla eriştiğim makinede. Uzak makinemde jupyter dizüstü bilgisayarı çalıştıran herhangi bir uzantı yüklemem.
physicsGuy

6
Hinterland'ı kurdum ve yalnızca temel python öğelerini otomatik olarak tamamlayacak, ancak modül işlevlerini (örneğin pd, np vb.) Otomatik tamamlamayacak.
thebeancounter

@thebeancounter Benim için hinterland numpy ve panda gibi modüllerle çalışıyor. Göreceli bir içe aktarma import numpy as npve tür yapsam bile npöneriler görünüyor (örneğin np.abs). Bu sorunu gidermek için kurulumunuzla ilgili daha fazla ayrıntı gereklidir. Probleminiz için ayrı bir soru açmanızı öneririm.
physicsGuy

2
Benim gibi Jupyter Not Defterine aşina olmayanlar için, 1) bunları yüklemek için resmi talimatları izleyin: jupyter-contrib-nbextensions.readthedocs.io/en/latest/… 2) tarayıcı yapılandırıcı kullanıcı arayüzünü yükleyin, ardından: github.com / Jupyter-Contrib / jupyter_nbextensions_configurator 3) Terminaldeki komutu kullanarak jupyter not defterini açın:jupyter notebook
Jason

40

Jupyter Notebook ile otomatik tamamlama, hinterland uzantısıyla bile çok zayıf. Derin öğrenmeye dayalı otomatik kod tamamlama fikri için teşekkürler. Derin Öğrenmeye dayalı otomatik kod tamamlama sağlayan TabNine tabanlı bir Jupyter Not Defteri Uzantısı geliştirdim. İşte çalışmamın Github bağlantısı: jupyter-tabnine .

Artık pypi dizininde mevcut . Sadece aşağıdaki komutları verin, sonra keyfini çıkarın :)

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

demo


Harika çalışıyor! Ancak yeni satırımı öldürdü (Shift + Enter) artık Jupyter Notebook'ta çalışmıyor. Bunun için herhangi bir çözüm var mı?
Harvey

@Harvey Merhaba, Enteryanlış kullanımdan kaçınmak için ilkini bloke ediyorum . İpucu penceresi gösterilirse, ilki Enterpencerenin kapanmasını tetikleyecektir. İpucu gösterildiğinde yeni çizgi istiyorsanız Şimdilik, sadece verebilir Enterardından konuyu ve Enter(veya Shift+ EnterEmin iyi bir tasarım olsun değilim geçerli hücreyi yürütmek ve yeni bir tane oluşturmak istiyorum.). Bana düşüncelerinizi ve önerilerinizi bildirin.
Wenmin Wu

Dizüstü bilgisayar klavyemde "fn" + "Giriş" çalışıyor. Ben daha alışıyorum. Beklenen davranış, hücredeki yeni satır için Alt + Enter ve yürütme için Shift + Enter idi. Her neyse, bu eklentinin ne kadar yararlı olduğunu düşünürsek, bu sadece küçük bir şey. Teşekkür ederim!
Harvey

Permission deniedJupyter için yüklemeye çalışırken hata oluşması durumunda --user, jupyter yükleme komutuyla eklemeniz yeterlidir.
Yuen Tau

1
Ayrıca nazik bir uyarı: TabNine, büyük miktarda bellek ve CPU kaynağı alabilir. Benim durumumda, WSL'den (Ubuntu 18.04) jupyter dizüstü bilgisayar çalıştırıyorum ve TabNine ~ 1.5GB bellek kaplıyor. Görevi görev yöneticisinden sonlandırırsanız, kullanılan bellek ~ 200MB'ye düşebilir ve TabNine, jupyter not defterinize bir sonraki yazışınızda kendini otomatik olarak başlatır. Daha fazla ayrıntı github.com/zxqfl/TabNine/issues/43 adresinde .
Yuen Tau

12

Yukarıda @physicsGuy tarafından belirtildiği gibi, hinterland uzantısını kullanabilirsiniz. Bunu yapmak için basit adımlar.

Conda forge kanalını kullanarak nbextension kurulumu. Conda terminalinde aşağıdaki komutu çalıştırmanız yeterlidir:

conda install -c conda-forge jupyter_nbextensions_configurator

Sonraki Adım hinterland uzantısının etkinleştirilmesi. Conda terminalinde aşağıdaki komutu çalıştırın:

jupyter nbextension enable hinterland/hinterland

İşte bu, bitti.


6
Enabling notebook extension hinterland/hinterland... - Validating: problems found: - require? X hinterland/hinterlandBunu yapmanın hatası bu
Darshu Bc

Bu iki komutları çalıştırın jupyter contrib nbextension install --systemve jupyter contrib nbextension install --usersonra da bu listeyi görmek içinjupyter nbextension list
PiotrK

8

%config IPCompleter.greedy=TrueBu şekilde numpy veya panda gibi bir paketi içe aktardıktan sonra bunu yapmadan ; import numpy as np import pandas as pd.

Sonra pd.yazarsınız ve sekme düğmesine dokunursunuz, çok kolay ve yalın şekilde kullanmak için tüm olası yöntemleri ortaya çıkarır.


8

Jupiter Notebook 5.6.0 kullanıyorum. Burada otomatik öneri almak için en az bir karakter girdikten sonra Tab tuşuna basıyorum.

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

İçe aktarılan kitaplığın içindeki yöntemleri ve özellikleri almak için Alice ile aynı Sekme anahtarını kullanın

  import numpy as np

  np. --> Hit Tab key

2

Ben hinterland genişlemesini öneririm .

Diğer cevaplarda, pip'den nasıl kurulacağına dair yöntemi bulamadım, bu yüzden onu böyle kurarsınız.

İlk olarak, jupyter katkı uzantılarını çalıştırın.

pip install jupyter_contrib_nbextensions

Sonra jupyter için js ve css dosyasını çalıştırarak yükleyin

jupyter contrib nbextension install --user

ve sonunda koş,

jupyter nbextension enable hinterland/hinterland

Son komutun çıktısı

Enabling notebook extension hinterland/hinterland...
      - Validating: OK

1

Aşağıdakileri jupyter laboratuvarında klavye kullanıcı tercihlerinize ekleyin (Ayarlar-> Gelişmiş sistem editörü)

{
    "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"
        }

    ]
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.