2008-11-29 64 views
4

Python readline模塊的文檔說「可用性:Unix」。但是,儘管其他標記爲Unix的模塊可用,但OS X似乎不可用。下面是我使用的是什麼:爲什麼Python readline模塊在OS X上不可用?

 
$ 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 
>>> 

我還通過使用MacPorts安裝了Python 2.5,但readline不可有兩種。

我該怎麼辦才能在OS X上爲Python的raw_input()函數提供readline功能?

回答

7

您是否嘗試安裝py-readline(或py25-readline for Python 2.5)端口?

此外,在上面的代碼片段中,您沒有使用MacPort python,而是Apple Python。

MacPort版本應該位於/opt/local目錄結構中。你應該檢查你的路徑。

+1

正如我所說的,我也通過MacPorts安裝了Python 2.5,並且readline在那裏不可用。但安裝py25-readline工作,謝謝! – 2008-11-29 07:34:54

+1

如果您使用的是MacPorts Python,您可能還想安裝'python_select'包來設置默認的Python解釋器。 – Cyberdrow 2009-07-12 10:38:31

3

由於授權問題(GPL給您帶來的限制),它未在OS X中發貨。

如果你安裝了readline包,Macports python應該沒問題。

3

您應該可以在Mac的本機Python上獲得readline支持。顯然它是通過BSD的editline實現的,你必須以不同的方式啓動它。我剛剛在Mac上測試了它,並且它工作正常(OS X 10.5.7)。有關更多詳細信息,請參見man python,「交互式輸入編輯和歷史替換」部分 - mirrored on the web here

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

如果您想自動執行此操作,請將導入行放入一個名爲(例如).pythonrc的文件中,並將其放入您的主目錄中。添加一行「export PYTHONSTARTUP = $ HOME/.pythonrc」到你的.bashrc和voila。對於vi鍵綁定,請在您的主目錄中創建.editrc,並添加「bind -v」行。 – 2014-04-16 12:46:06

3

嘗試rlwrap。它應該可以與任何版本的python以及任何shell一起工作。

在Mac OS X通過brew install rlwrap安裝

使用爲rlwrap python。它也存儲歷史。

相關問題