Bagaimana saya bisa mendapatkan penyelesaian tab dalam interpreter Python interaktif?

14

Saya sering menggunakan interpreter interaktif Python 3000, tetapi tidak ada kemudahan penyelesaian-tab yang biasa saya gunakan dari ipython, yang tidak tersedia untuk Python 3.x.

Bagaimana cara mengaktifkan penyelesaian tab di semuanya, 2.6 dan 3.x?

Stefano Palazzo
sumber

Jawaban:

17

Pertama, buat file baru yang disebut .pythonstartup.pydi direktori home Anda. Letakkan skrip berikut di dalamnya:

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

Tanda kurung di sekeliling string memastikan bahwa ia bekerja dengan Python 2 dan Python 3.

Setiap kali interpreter interaktif dimulai, ia mengeksekusi skrip yang didefinisikan $PYTHONSTARTUP, jika ada. Untuk mengaturnya agar menjalankan skrip di atas, ketik

export PYTHONSTARTUP="~/.pythonstartup.py"

Anda harus menulis baris ini untuk Anda .bashrcatau.bash_profile berkas, sehingga secara otomatis dijalankan ketika shell baru dimulai.

Stefano Palazzo
sumber
6
PEMBERITAHUAN: Ini tidak akan berfungsi jika Anda memulai terminal dan kemudian mengubah direktori. Jika Anda ingin metode ini berfungsi, apa pun direktori Anda, Anda harus menggunakan path lengkap sepertiexport PYTHONSTARTUP="/home/user/.pythonstartup.py"
Pithikos
1
Anda dapat membuat ekspor sedikit lebih toleran dengan mengeksporPYTHONSTARTUP=~/.pythonstartup.py
Mikael Fremling
Ini tidak berfungsi jika Anda memulai file dalam mode interaktif, mis python -i main.py. Adakah cara untuk melakukan itu?
Chris Anderson