2010-09-22 8 views
6

Ich verwende IPython unter Windows 7 x64 mit Pyreadline installiert. Wenn ich eine neue Sitzung und Art starten:Mehrdeutige Tab-Vervollständigung funktioniert nicht in iPython unter Windows

import numpy 
nu<TAB> 

Dann nu autocompletes zu numpy. Jedoch, wenn ich eine neue Sitzung starte und das versuche:

import numpy 
n<TAB> 

Dann passiert nichts. Ich würde erwarten, dass es alle möglichen Abschlüsse durchläuft. Ich benutze derzeit out-of-the-box-Konfiguration, muss ich eine Einstellung ändern, um mehrdeutige Registerkarte Abschluss zu ermöglichen, oder bin ich nur Pech?

EDIT: den Kommentar von ma3204 zu adressieren, hier ist ein weiteres Beispiel (Start mit frischer ipython Session):

[In 1]: value1 = 5 

[In 2]: value2 = 6 

[In 3]: va<TAB>  ... nothing happens 
[In 3]: va<Ctrl + l> 
vars value2 value1 

[In 3]: val<TAB>  ... completes to 'value' 
[In 3]: value 
[In 3]: value<Ctrl + l> 
value2 value1 

[In 3]: value 

Wenn ich va<TAB> Typ I oben jede Registerkarte drücken, um durch value1 erwarten , value2, vars, value1, value2 usw.

+1

Ich bin mit dem gleichen Problem. Windows 7 x64 hier. Früher hat es in Vista x86 funktioniert. – davidnr

+0

Ich habe das gerade mit Win7x64 versucht, mit ein paar anderen Paketen (außer numpy) und es hat gut funktioniert (mit 2+ separaten Sitzungen). Vielleicht ist es ein numperspezifisches Problem? – snapshoe

+0

Ich hatte das gleiche Problem, die gleiche Umgebung, Python, etc, aber ohne numpy installiert. Es ist also eindeutig kein Problem mit diesem Paket. Könnte etwas seltsam mit den Pyreadline oder iPython Konfigurationsdateien sein (ich kann es nicht ausarbeiten). – ropable

Antwort

9

Sie müssen die Konfigurationsdatei für Pyreadline in Ihren HOME-Ordner kopieren (C: \ Users \ < username>).

öffnen Befehlszeile und führen Sie das:

copy "C:\Program Files (x86)\Python26\Lib\site-packages\pyreadline\configuration\pyreadlineconfig.ini" %HOMEPATH% 
+0

Ehrfürchtig. Ich hatte es aufgegeben, dies zur Arbeit zu bringen, und mich Slasher's Workaround ergeben. – mwolfe02

+0

Gott sei Dank, wie bist du auf diese Lösung gekommen? – Kugel

+0

Ein Detail: Wenn Sie eine HOME-Variable definiert haben.Ini muss dort statt% gehen HOMEPATH% –

6

Gerade installiert python 2.6 und numpy, ipython und so weiter. Das ärgert mich auch. Auf meinen anderen Computern mit älteren Installationen funktioniert es. Ich verwende die Komplettierungsliste sehr, um zu sehen, welche Befehle verfügbar sind, so dass ich frustriert bin, wenn es nicht funktioniert.

EDIT: Gefunden, dass Sie es mit CTRL-l bekommen können. Sah in ipythonrc und es sollte funktionieren, wie ich es gewohnt bin, aber nicht. Die CTRL-l funktioniert jedoch. Will sehen, ob es wieder kickt. Scheint sich daran zu erinnern, dass ich zuvor ähnliche Probleme hatte, aber es hat nach einiger Zeit funktioniert.

+2

+1 Das ist besser als nichts. Danke für den Tipp. Für andere, die diese Seite finden, beachten Sie bitte, dass die Tastenkombination 'Strg + ' nicht 'Strg + ' ist. Ich brauchte ein paar Minuten, um das zu erkennen. – mwolfe02

+0

Funktioniert für mich! Danke euch beiden. – davidnr

+0

Ich markiere dies als die Antwort für jetzt, da es scheint, dass ipython dieses Feature in dieser Umgebung derzeit nicht unterstützt. Wenn jemand anders weiß, füge es bitte als Antwort hinzu und ich werde meine markierte Antwort entsprechend aktualisieren. – mwolfe02