8 Stimmen

Warum ist das Python readline Modul unter OS X nicht verfügbar?

Die Dokumentation des Python readline Modul sagt "Verfügbarkeit: Unix". Es scheint jedoch unter OS X nicht verfügbar zu sein, obwohl andere als Unix gekennzeichnete Module verfügbar sind. Ich verwende das folgende Modul:

$ uname -a
Darwin greg.local 8.11.1 Darwin Kernel Version 8.11.1: Wed Oct 10 18:23:28 PDT 2007; root:xnu-792.25.20~1/RELEASE\_I386 i386 i386
$ which python
/usr/bin/python
$ python
Python 2.3.5 (#1, Nov 26 2007, 09:16:55) 
\[GCC 4.0.1 (Apple Computer, Inc. build 5363) (+4864187)\] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import readline
Traceback (most recent call last):
  File "", line 1, in ?
ImportError: No module named readline
>>> 

Ich habe auch Python 2.5 über MacPorts installiert, aber readline ist auch dort nicht verfügbar.

Was kann ich tun, um die readline Funktionalität für Pythons raw_input() Funktion unter OS X?

7voto

tegbains Punkte 587

Haben Sie versucht, die py-readline (ou py25-readline für Python 2.5) portieren?

Außerdem verwenden Sie in dem obigen Ausschnitt NICHT das MacPort-Python, sondern das Apple-Python.

Die MacPort-Version sollte sich im Verzeichnis /opt/local Verzeichnisstruktur. Sie sollten Ihren Pfad überprüfen.

1 Stimmen

Wie ich schon sagte, habe ich auch Python 2.5 über MacPorts installiert und readline ist dort nicht verfügbar. Aber die Installation von py25-readline hat funktioniert, danke!

1 Stimmen

Wenn Sie MacPorts Python verwenden, sollten Sie auch das Paket "python_select" installieren, um Ihren Standard-Python-Interpreter einzustellen.

5voto

Sairam Punkte 2338

Versuchen Sie rlwrap . Es sollte mit jeder Version von Python und im Allgemeinen jeder Shell funktionieren.

Installieren über brew install rlwrap unter Mac OS X

Verwendung als rlwrap python . Es speichert auch die Geschichte.

0 Stimmen

^ Tolle Lösung für Mac OSX... viel schöner, als eine ganz neue Version von Python installieren zu müssen oder zu tippen stty sane wenn man nicht einmal sehen kann, was man gerade tippt.

1 Stimmen

Nachdem ich mich mit Kommentaren über xcode und 3897 Dingen herumgeschlagen habe, die nicht funktionierten, habe ich jetzt endlich wieder eine brauchbare Python-Shell. Danke!

4voto

Dustin Punkte 85400

Aufgrund von Lizenzproblemen (Einschränkungen durch die GPL) wird es nicht in OS X ausgeliefert.

Macports Python sollte in Ordnung sein, wenn Sie das readline-Paket installiert haben.

3voto

Telemachus Punkte 18969

Sie sollten in der Lage sein, readline-Unterstützung in Mac's nativem Python zu erhalten. Anscheinend ist es über BSD's editline implementiert, und Sie müssen es etwas anders starten. Ich habe das gerade auf einem Mac getestet, und es funktioniert einwandfrei (OS X 10.5.7). Siehe man python Weitere Einzelheiten finden Sie im Abschnitt "Interaktive Eingabebearbeitung und Verlaufssubstitution" - gespiegelt im Internet hier .

luga ~ $ python 
Python 2.5.1 (r251:54863, Feb  6 2009, 19:02:12) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import rlcompleter
>>> import readline
>>>

1 Stimmen

Wenn Sie dies automatisieren möchten, fügen Sie die Importzeilen in eine Datei mit dem Namen (z. B.) .pythonrc ein und legen Sie diese in Ihrem Heimatverzeichnis ab. Fügen Sie eine Zeile "export PYTHONSTARTUP=$HOME/.pythonrc" zu Ihrer .bashrc hinzu und voila. Für vi-Tastaturbelegungen erstellen Sie .editrc in Ihrem Heimatverzeichnis und fügen die Zeile "bind -v" hinzu.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X