質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Q&A

解決済

1回答

1348閲覧

Windowsのpyreadlineにredisplayがない

CabbageLettuce

総合スコア57

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

0グッド

0クリップ

投稿2020/05/29 16:11

この記事を見ながらTAB補完を有効にしました
TAB補完は可能になりましたが、何もないところでTABを押すと以下のエラーが表示されるようになりました

python

1Traceback (most recent call last): 2 File "C:\Users\user\AppData\Local\Programs\Python\Python38\lib\site-packages\pyreadline\console\console.py", line 768, in hook_wrapper_23 3 res = ensure_str(readline_hook(prompt)) 4 File "C:\Users\user\AppData\Local\Programs\Python\Python38\lib\site-packages\pyreadline\rlmain.py", line 571, in readline 5 self._readline_from_keyboard() 6 File "C:\Users\user\AppData\Local\Programs\Python\Python38\lib\site-packages\pyreadline\rlmain.py", line 536, in _readline_from_keyboard 7 if self._readline_from_keyboard_poll(): 8 File "C:\Users\user\AppData\Local\Programs\Python\Python38\lib\site-packages\pyreadline\rlmain.py", line 556, in _readline_from_keyboard_poll 9 result = self.mode.process_keyevent(event.keyinfo) 10 File "C:\Users\user\AppData\Local\Programs\Python\Python38\lib\site-packages\pyreadline\modes\emacs.py", line 243, in process_keyevent 11 r = self.process_keyevent_queue[-1](keyinfo) 12 File "C:\Users\user\AppData\Local\Programs\Python\Python38\lib\site-packages\pyreadline\modes\emacs.py", line 286, in _process_keyevent 13 r = dispatch_func(keyinfo) 14 File "C:\Users\user\AppData\Local\Programs\Python\Python38\lib\site-packages\pyreadline\modes\basemode.py", line 257, in complete 15 completions = self._get_completions() 16 File "C:\Users\user\AppData\Local\Programs\Python\Python38\lib\site-packages\pyreadline\modes\basemode.py", line 200, in _get_completions 17 r = self.completer(ensure_unicode(text), i) 18 File "C:\Users\user\AppData\Local\Programs\Python\Python38\lib\rlcompleter.py", line 80, in complete 19 readline.redisplay() 20AttributeError: module 'readline' has no attribute 'redisplay'

ドキュメントには、以下のように書いてありました

readline.redisplay()
スクリーンの表示を変更して行バッファの現在の内容を反映させます。これにより下層のライブラリーの
rl_redisplay() が呼ばれます。

GNU Readlineのドキュメントには以下のように書いてありました

rl_redisplay ()
Change what's displayed on the screen to reflect the current contents of rl_line_buffer.
和訳)画面に表示される内容を変更して、rl_line_bufferの現在の内容を反映させます。

ですが、正直この関数がどういった働きを持つのかよくわかりませんでした。
UbuntuのPythonでredisplay()を実行しましたが、何かが起こったようには見えませんでした。

現在、pyreadlineの先頭に以下を追加することでエラーを回避しています

python

1redisplay = lambda: None

ですが、どうしても無理矢理な感じが否めません

  • readline.redisplay()はどういった機能を持っているのですか?
  • pyreadlineにreadline.redisplay()の代わりになる関数はありますか?

環境は以下のとおりです

  • Windows 10 1909 64bit
  • Python 3.8.3 (64bit)
  • pyreadline 2.1

回答よろしくおねがいします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

readline.redisplay()はどういった機能を持っているのですか?

redisplayは、表示やカーソル位置が乱れたときに押して、行をゼロから書き直す機能なので、不要ならそれで良いと思います。

投稿2020/05/30 00:22

otn

総合スコア84505

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2020/05/30 13:31

例えば全角文字の認識がおかしい(半角2文字分の幅という認識がされてない)と、表示が乱れます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問