wake-up-neo.net

Die automatische Vervollständigung der Registerkarte "ipython" funktioniert nicht mit dem importierten Modul

Tab-Vervollständigung bei IPython scheint nicht zu funktionieren. Zum Beispiel,

import numpy
numpy.<tab>

fügt einfach eine Registerkarte hinzu.

import numpy
num<tab>

fügt nur eine Registerkarte hinzu. Könnten Sie bitte einige mögliche Ursachen für dieses Problem vorschlagen? Ich verwende Windows 7 und Python 2.6.5.

70
djpark121

Stellen Sie sicher, dass Sie die Bibliothek pyreadline installiert haben. Es wird für die Tabulatorvervollständigung und andere IPython-Funktionen benötigt - in Windows wird das IPython-Paket nicht mitgeliefert und Sie müssen es separat installieren - 

> pip install pyreadline
88
joaquin

Ihre ipythonrc-Datei ist möglicherweise nicht mehr aktuell

ipython -upgrade
9
zwalker

pip sagte mir, dass ich die Pyreadline-Version 1.7.1 installiert habe

C:\Users\me>pip freeze | grep readline
pyreadline==1.7.1

Die Aktualisierung von pyreadline hat es für mich behoben:

C:\Users\me>pip install --upgrade pyreadline

C:\Users\me>pip freeze | grep readline
pyreadline==2.0
6
Rabarberski

Der Klassiker "Haben Sie versucht, ihn aus- und wieder einzuschalten", hat für mich funktioniert.

pip uninstall ipython
pip install ipython
2

Ein anderer Benutzer in StackOverflow hat diesen Link veröffentlicht: http://www.vankouteren.eu/blog/2009/06/getting-ipython-readline-and-auto-completion-to-work-on-mac-os-x/

Es ist im Grunde easy_install readline, um herauszufinden, wo das readline Egg installiert wurde, und das ipython bin-Skript zu bearbeiten, um diese readline zu verwenden:

  1. Installieren Sie die "offizielle" Readline: easy_install readline
  2. Entdecke, wo es ist. Schauen Sie sich /Library/Python/site-packages/readline-*.Egg oder in Ihrem Virtualenv-Pendant an
  3. Finden Sie heraus, wo sich ipython bin befindet: which ipython
  4. Fügen Sie ONE LINE zu dieser Datei hinzu und fügen Sie den readline-Ei-Pfad direkt nach import sys-Zeile hinzu.

Mein virtuelles ipython bin-Skript funktioniert wie folgt:

#!/Users/alanjds/src/git/cervejeiras/venv/cervejeiras-lfs/bin/python
# EASY-INSTALL-ENTRY-SCRIPT: 'ipython==0.13.1','console_scripts','ipython'
__requires__ = 'ipython==0.13.1'
import sys

### ONLY LINE ADDED:
sys.path.insert(0, '/Users/alanjds/src/git/cervejeiras/venv/cervejeiras-lfs/lib/python2.6/site-packages/readline-6.2.4.1-py2.6-macosx-10.6-fat.Egg')
####

from pkg_resources import load_entry_point

if __== '__main__':
    sys.exit(
        load_entry_point('ipython==0.13.1', 'console_scripts', 'ipython')()
    )
1
alanjds

Im Moment, auf einem OSX, gibt pip installiertes ipython keinen Tab-Abschluss, pyreadline release.py ist kaputt .. was WFM:

easy_install ipython readline

YMMV.

1
Skylar Saveland

Mir ist klar, dass dies eine wirklich alte Frage ist, aber keine der obigen Antworten funktionierte für mich (und dies ist der erste Treffer, den Sie bekommen, wenn Sie eine solche Frage auf Google stellen).

Ich sollte erwähnen, dass dies NICHT exklusiv für Windows ist, ich hatte das Problem, CentOS 6.5 und Python 2.7 auszuführen

Folgendes habe ich getan:

apt-get/yum install ncurses-devel
#If you want history in iPython:
apt-get/yum install sqlite-devel
easy_install ipython readline
ipython

In [1]: from 
Display all 391 possibilities? (y or n)

Wenn Sie nicht über die -devel-Pakete verfügen, schlägt Ihre Installation fehl, wenn es Zeit ist, sie zu verknüpfen und die Eier zu bauen. Hoffe, das hilft anderen!

1
steve-gregory

Ich musste in meinem Fall mv ~/.ipython{,.bak}.

0
maximk

Wenn Sie ein Jupyter-Notebook verwenden und die automatische Vervollständigung der Registerkarte trotzdem funktioniert, nachdem Sie alle in diesem Beitrag vorgeschlagenen Schritte ausgeführt haben, möchten Sie möglicherweise prüfen, ob Sie die automatische Vervollständigung der Registerkarte innerhalb einer Funktionsdefinition versuchen. Wenn Ihre Importanweisungen wie unten beschrieben zur Funktion gehören, wird die automatische Vervollständigung der Registerkarte nicht angezeigt. Sie müssen die Importanweisungen außerhalb der Funktion platzieren und auch einmal ausführen, bevor Sie die automatische Vervollständigung der Pakete anfordern.

def myfunction():
    import pandas as pd
    import numpy as np

    a = pd.DataFrame(np.random.normal(1,3, (4,4))
    return a
0
ds2000

Ich hatte dieses Problem und wusste, dass ich den Pip für das von mir gesuchte Modul installiert hatte. Durch das Ausführen von $ ipython --init wurde das Problem für mich gelöst.

0
mvnicosia

Pyreadline wird von ipython benötigt. Installieren Sie pyreadline. Dies wurde in Windows 7 durchgeführt. Holen Sie sich pyreadline Zip, pyreadline-master.Zip , unzip. Stellen Sie im Powershell-Änderungsverzeichnis in uzipped pyreadline sicher, dass Python in Path eingestellt ist, und geben Sie den Befehlpython setup.py install ein. Dadurch wird Pyreadline in C:\Python27\Lib\site-packages gespeichert

0
user3101288

Ein Downgrade von iPython hat es geschafft.

pip install --upgrade ipython==5.8.0
0
Justin Case