インタラクティブモードでPython3が表示されない

インタラクティブモードで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インタプリタが編集をサポートしているか、またはGNU Readlineライブラリが機能しないようにするビルドプロセス(Python3がソースからビルドされたと仮定)に問題があるかどうかについて説明しません。また、この問題を解決する方法を学ぶためにGoogleでたくさん検索しましたが、運がありませんでした。

不思議なことに、同じコンピュータにPython 2がインストールされ、インタラクティブ編集をサポートしています。また、自宅のコンピュータにインストールされているPython 3も正常に動作します。

答え1

私はこの問題を研究し、インタラクティブな編集方法を学んだ技術担当者です。 yumによる問題は、オペレーティングシステムがPythonを使いすぎているため、yum(会社ポリシー)を介して更新できないことです。

Python 3.4.3をコンパイルする必要があります。源泉。コンパイルしてインストールした後、不足しているパッケージをすべて追加する必要がありました。この特別なバッグはgnureadline。 Readline は廃止されました。パッケージをビルドしてインストールするために実行した手順は次のとおりです(CentOS 6.7用)。

  1. wget https://pypi.python.org/pypi/gnureadline/6.3.3
  2. tar -xzvf gnureadline-6.3.3.tar.gz
  3. cd gnureadline-6.3.3
  4. 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. OKctrl-aキーと矢印キーを使用して行を移動できます。

関連情報