対話型Pythonインタープリターでタブ補完を取得するにはどうすればよいですか?


14

私はよくPython 3000の対話型インタープリターを使用しますが、ipythonで使用していたタブ補完の利便性が欠けています。これはPython 3.xでは使用できません。

2.6および3.xのすべてでタブ補完を有効にするにはどうすればよいですか?

回答:


17

最初に、.pythonstartup.pyホームディレクトリに新しいファイルを作成します。次のスクリプトを入れます:

try:
    import readline
except ImportError:
    print("Module readline not available.")
else:
    import rlcompleter
    readline.parse_and_bind("tab: complete")

文字列を囲む括弧は、Python 2とPython 3の両方で機能することを保証します。

インタラクティブインタープリターが起動されるたびに、で定義されたスクリプトが実行されます$PYTHONSTARTUP(存在する場合)。上記のスクリプトを実行するように設定するには、次を入力します

export PYTHONSTARTUP="~/.pythonstartup.py"

新しいシェルが開始されたときに自動的に実行されるように、この行を.bashrcor.bash_profileファイルに書き込む必要があります。


6
注意:ターミナルを起動してからディレクトリを変更すると、これは機能しません。あなたが仕事に、このメソッドを使用する場合は何もあなたがいるディレクトリを問題では、次のような完全なパス使うべきではありませんexport PYTHONSTARTUP="/home/user/.pythonstartup.py"
Pithikos

1
エクスポートを行うことにより、エクスポートをもう少し寛容にすることができますPYTHONSTARTUP=~/.pythonstartup.py
ミカエルフレムリング

たとえば、ファイルを対話モードで起動する場合、これは機能しませんpython -i main.py。それを行う方法はありますか?
クリスアンダーソン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.