web-dev-qa-db-ja.com

Pythonシェルにタブ補完を追加するにはどうすればよいですか?

python manage.py Shellを使用してDjangoアプリケーションを起動すると、InteractiveConsoleシェルが表示されます。タブ補完などを使用できます。

Python 2.5.1 (r251:54863, Apr 15 2008, 22:57:26) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)

pythonを使用してpythonインタープリターを開始するだけの場合、タブ補完は提供されません。

誰かがDjango=が対話型コンソールを提供するために何をしているのか、またはDjangoアプリなしで対話型コンソールを起動するために何をする必要があるのか​​教えてくれますか?

111
ashchristopher

私はそれを行う方法を見つけたかもしれません。

ファイル.pythonrcを作成します

# ~/.pythonrc
# enable syntax completion
try:
    import readline
except ImportError:
    print("Module readline not available.")
else:
    import rlcompleter
    readline.parse_and_bind("tab: complete")

次に、.bashrcファイルに以下を追加します

export PYTHONSTARTUP=~/.pythonrc

それはうまくいくようです。

193
ashchristopher

Djangoは https://docs.python.org/library/rlcompleter.html のようなことをします

本当に優れたインタラクティブなインタープリターが必要な場合は、 http://ipython.scipy.org/ をご覧ください。

34
Peter Hoffmann

記録のために、これはチュートリアルでカバーされています: http://docs.python.org/tutorial/interactive.html

26
Thomas Wouters

Ptpythonを使用します。 https://github.com/jonathanslenders/ptpython/

ptpythonは素晴らしいツールのオートコンプリートシェルコマンドです。 ptpythonのインストールは非常に簡単です、pipツールを使用してください

pip install ptpython

とDjango= Shellの場合、Django= env、this

輸入OS

os.environ.setdefault( "Django_SETTINGS_MODULE"、 "testweb.settings")

私を信じて、これはあなたへの最善の方法です!

8
alan_wang

Python3はすぐに使えるように見えます!

4
Michel Samia

windows10シェルの修正:

  • pip install pyreadline
  • pip install ipython [シェル]
1
Mr.B

より完璧な.pythonrc.py、あなたはそれが有用であることがわかるかもしれません: https://Gist.github.com/guyskk/6f3522e3d17135b470bf3d982c80cc01

0
guyskk

Python3では、この機能はデフォルトで有効になっています。私のシステムにはreadlineモジュールがインストールされていません。私はマンジャロにいます。他のLinuxディストリビューション(小学校、ubuntu、ミント)では、このタブ補完の問題に直面しませんでした。

pipモジュールをインストールした後、インポート中に次のエラーがスローされました-

ImportError: libncursesw.so.5: cannot open shared object file: No such file or directory

これを解決するために、私は走りました

cd /usr/lib ln -s libncursesw.so libncursesw.so.5

これにより、インポートエラーが解決されました。また、.pythonrc.bashrcの作成/変更なしで、python replにタブ補完をもたらしました。

0
TrigonaMinima