Python3 沒有以互動模式出現
我在工作電腦上安裝了 python3。
Python 3.4.3 (default, May 3 2016, 09:46:33) [GCC 4.4.7 20120313 (Red Hat 4.4.7-16)] on linux Type "help", "copyright", "credits" or "license" for more information.
互動式編輯器不工作。例如,我不能使用 emacs 控制序列。我只是顯示“^A”而不是轉到我的行首。
這裡提到了該功能:
https://docs.python.org/3.4/tutorial/interactive.html
它說:
Some versions of the Python interpreter support editing of the current input line and history substitution, similar to facilities found in the Korn shell and the GNU Bash shell. This is implemented using the GNU Readline library, which supports various styles of editing.
文件沒有說明需要啟用此功能,哪些版本的 Python 解釋器支持編輯,或者如果在建構過程中可能存在某些東西,假設 Python3 是從原始碼建構的,這使得 GNU Readline 庫無法工作。而且,我用Google搜尋了一堆,看看我如何在沒有運氣的情況下解決這個問題。
奇怪的是,在同一台機器上安裝了 Python 2,它支持互動式編輯就好了。而且,安裝在我家用機器上的 Python 3 也可以正常工作。
我是解決這個問題的技術人員,發現瞭如何讓互動式編輯工作。通過 yum 的問題是,由於作業系統使用了太多 python,我們無法通過 yum(公司政策)對其進行更新。
我不得不從原始碼編譯 python 3.4.3 。編譯和安裝後,我必須添加每個缺少的包。這個特殊的包是
gnureadline
. 不推薦使用 Readline。以下是我建構和安裝軟體包的步驟(對於 CentOS 6.7):
wget https://pypi.python.org/pypi/gnureadline/6.3.3
tar -xzvf gnureadline-6.3.3.tar.gz
cd gnureadline-6.3.3
python3 setup.py install
注意:在這裡我遇到了一個問題
/usr/bin/ld: cannot find –lncurses
。使用/usr/bin/ld –lncurses --verbose
發現它正在搜尋的路徑沒有庫。創建了一個符號連結並且它有效。如果您沒有收到錯誤,請跳到最後一步。 5.ln -s /lib64/libncurses.so.5.7 /usr/lib64/libncurses.so
6.python3 setup.py install
7. 已驗證我可以使用ctrl-a
和箭頭鍵在行中移動。