https://github.com/jonathanslenders/python-prompt-toolkitPythonで強力なインタラクティブコマンドラインを構築するためのライブラリPythonプロンプトツールキットprompt_toolkitは、強力な対話型のコマンドラインとPythonでのターミナルアプリケーションを構築するためのライブラリです。readthedocsのドキュメントを読んでください。2.0これがprompt_toolkitの2.0ブランチであることに注意してください。これは1.0ブランチと互換性がありませんが、多くの点でははるかに優れています。Pypiでは1.0のブランチが見つかるはずですが、すぐにリリースされるはずです。その間、このブランチをテストしてバグを報告することを躊躇しないでください。Ptpythonptpythonは対話的なPythonシェルで、prompt_toolkitの上に構築されています。readlineの代わりになる可能性がありますが、これ以上のこともあります。いくつかの機能:純粋なPython。入力中の構文の強調表示。(例えば、Pygmentsレクサーの場合)。マルチライン入力編集。(readlineに似ています)名前付きレジスタや二重グラフのようないくつかの高度なVi機能さえ。逆方向および順方向インクリメンタルサーチ。2.6から3.5までのすべてのPythonバージョンで動作します。Unicodeの2倍の幅の文字でうまく動作します。(中国語入力)コピー/貼り付けのためのテキストの選択。(EmacsとViスタイルの両方)。括弧で囲まれたペーストのサポート。カーソルの位置決めとスクロールのためのマウスサポート。魚の殻のように)複数の入力バッファ。グローバルな状態はありません。軽量で、唯一の依存関係はPygments、6およびwcwidthです。X、FreeBSD、OpenBSD、Windowsシステムで動作します。多くの...バグや機能リクエストのチケットを作成し、他の人と共有したい素敵なパッチがあればプルリクエストを作成してください。Windowsのサポートについてprompt_toolkitはクロスプラットフォームであり、上に構築したものはすべてUnixシステムとWindowsシステムの両方で正常に動作するはずです。)と別の入出力システムを使用します。実装は「可能な限りの最善の努力」であることは注目に値する。UnixとWindowsの両方の端末には限界があります。一般的に、Unixの経験はやや良いでしょう。cmderまたはconemuのどちらかを使用することをお勧めします。examplesディレクトリを見てください。すべての例は、1つだけを実証するために選択されています。ソースコードを見るのを恐れないでください。prompt機能の実装は良いスタートになる可能性がありprompt。2の注意:すべての文字列はUnicode文字列であると予想されます。unicode_literals。:Postgresクライアント。:MySqlクライアント。:ドッカーのコマンドライン。:Python-ish、BASHwards互換のシェル。:スーパーチャージAWSコマンドラインインターフェイス。:Cypherのコマンドラインインターフェイス。:クレートコマンドラインクライアント。:Verticaクライアント。CLIを操作するための統合シェル。:さまざまなSoftLayer製品およびサービスを管理するためのコマンドラインインターフェイス。:クリックアプリのサブコマンドREPL。NewsのCLIです。Shellのオートコンプリート。:対話型のコマンドラインHTTPクライアント。:Pythonでの機能プログラミング。:Pythonで書かれたBashの代替。Server用のコマンドラインクライアント。RobotFrameworkのデバッグライブラリとREPL。:コマンドをREPLとして実行します。:コマンドラインパスワードマネージャー。APIへの簡単なアクセスとREPLを介したワークスペースの管理。:純粋なPythonのターミナルマルチプレクサ(tmuxなど)。:純粋なPythonのVimクローン。(自分のプロジェクトをここにリストしたいのですか?GitHubの問題を作成してください。)哲学prompt_toolkitのソースコードは、読みやすく簡潔かつ効率的でなければなりません。1つのタスクに焦点を合わせ、入力と出力の型が明確になっている短い関数を優先します。継承は同じオブジェクトに多すぎる機能をもたらす可能性があるため、継承より合成を優先します。可能であれば、不変のオブジェクトを優先します(オブジェクトは初期化後に変更されません)。グローバルな状態が変わることは絶対に避けてください。同じプロセスで同じコードの複数の独立したインスタンスを持つことは可能です。アーキテクチャは階層化されていなければなりません。下位レベルは基本操作とデータ構造上で動作し、正しく組み合わされていればすべての可能な柔軟性を与えます。高いレベルでは、より簡単なAPIが用意されており、すぐに使用でき、ほとんどの使用例で十分です。アルゴリズムと効率について考えることは重要ですが、時期尚早の最適化は避けてください。:シンタックスハイライター。:ワイド文字に必要な列を決定します。