Il completamento automatico della scheda `ipython` non funziona sul modulo importato

Il completamento delle tabs su IPython sembra non funzionare. Per esempio,

import numpy numpy. 

semplicemente aggiunge una scheda.

 import numpy num 

aggiunge anche una scheda. Potresti suggerire alcune possibili cause di questo problema? Sono in esecuzione Windows 7 e Python 2.6.5.

Assicurati di aver installato la libreria pyreadline . È necessario per il completamento della tabulazione e altre funzioni IPython: in Windows non viene fornito con il pacchetto IPython e devi installarlo separatamente –

 > pip install pyreadline 

Il tuo file ipythonrc potrebbe non essere aggiornato. Prova a correre

 ipython -upgrade 

pip mi ha detto che avevo installato la versione 1.7.1 di pyreadline

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

L’aggiornamento di pyreadline risolto per me:

 C:\Users\me>pip install --upgrade pyreadline C:\Users\me>pip freeze | grep readline pyreadline==2.0 

Il classico ‘hai provato a spegnerlo e riaccenderlo’ ha funzionato per me.

 pip uninstall ipython pip install ipython 

A partire da ora, su un OSX, il pip installato ipython non fornisce il completamento della tabulazione, pyreadline release.py viene eliminato .. cosa WFM:

 easy_install ipython readline 

YMMV.

Qualcun altro in StackOverflow ha pubblicato questo link: http://www.vankouteren.eu/blog/2009/06/getting-ipython-readline-and-auto-completion-to-work-on-mac-os-x/

La sua readly basic_install easy_install readline da scoprire dove è stato installato l’egg readline e modifica lo script bin ipython per usare questa readline:

  1. Installa la lettura “ufficiale”: easy_install readline
  2. Scopri dove si trova. Guarda /Library/Python/site-packages/readline-*.egg o nella tua controparte Virtualenv
  3. Scopri dove si trova ipython bin: which ipython
  4. Aggiungi UNA LINEA a questo file, aggiungendo il percorso egg readline subito dopo aver import sys linea import sys .

Il mio script bin ipython virtualizzato ha funzionato come segue:

 #!/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 __name__ == '__main__': sys.exit( load_entry_point('ipython==0.13.1', 'console_scripts', 'ipython')() ) 

Mi rendo conto che questa è una domanda molto vecchia, ma nessuna delle risposte di cui sopra ha funzionato per me (e questo è il primo colpo che ottieni quando fai una domanda su Google di questa natura).

Devo dire che questo NON è esclusivo di Windows, ho avuto il problema con CentOS 6.5 e Python 2.7

Ecco cosa ho fatto:

 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) 

Se non hai i pacchetti -devel, la tua installazione fallirà quando verrà il momento di collegarli e build le uova .. Spero che questo aiuti gli altri!

Python è necessaria per ipython. Installa pyreadline. Questo è stato fatto in Windows 7. Ottieni pyreadline zip, pyreadline-master.zip , decomprimi. In PowerShell cambia la directory in pyreadline con zip, assicurati che python sia impostato in Path, e inserisci il comando python setup.py install Questo intallerà pyreadline in C: \ Python27 \ Lib \ site-packages

Ho avuto questo problema e sapevo che avevo il pip installato per il modulo che stavo cercando. L’esecuzione di $ ipython --init risolto il problema per me.

Ho dovuto mv ~/.ipython{,.bak} nel mio caso.

Se si utilizza il notebook Jupyter e si continua a ottenere il completamento automatico della scheda dopo aver provato tutti i passaggi suggeriti nel post, è ansible controllare se si sta tentando di utilizzare il completamento automatico della scheda all’interno di una definizione di funzione. Se le tue istruzioni di importazione fanno parte della funzione come quella seguente, non otterrai il completamento automatico della scheda. È necessario mettere le istruzioni di importazione all’esterno della funzione e anche eseguirle una volta prima di chiedere il completamento automatico sui pacchetti.

 def myfunction(): import pandas as pd import numpy as np a = pd.DataFrame(np.random.normal(1,3, (4,4)) return a