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.
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
Ihre ipythonrc-Datei ist möglicherweise nicht mehr aktuell
ipython -upgrade
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
Der Klassiker "Haben Sie versucht, ihn aus- und wieder einzuschalten", hat für mich funktioniert.
pip uninstall ipython
pip install ipython
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:
easy_install readline
/Library/Python/site-packages/readline-*.Egg
oder in Ihrem Virtualenv-Pendant anwhich ipython
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')()
)
Im Moment, auf einem OSX, gibt pip installiertes ipython keinen Tab-Abschluss, pyreadline release.py ist kaputt .. was WFM:
easy_install ipython readline
YMMV.
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!
Ich musste in meinem Fall mv ~/.ipython{,.bak}
.
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
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.
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
Ein Downgrade von iPython hat es geschafft.
pip install --upgrade ipython==5.8.0