Etkileşimli Python yorumlayıcısında sekme tamamlamayı nasıl alabilirim?


14

Sıklıkla Python 3000'in etkileşimli yorumlayıcısını kullanıyorum, ancak Python 3.x için mevcut olmayan ipython'dan sekme tamamlama kolaylığını kaçırıyor.

2.6 ve 3.x sürümlerinde sekme tamamlamayı nasıl etkinleştiririm?

Yanıtlar:


17

İlk olarak, .pythonstartup.pyana dizininizde yeni bir dosya oluşturun . Aşağıdaki betiği içine yerleştirin:

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

Dizenin etrafındaki parantezler, hem Python 2 hem de Python 3 ile çalışmasını sağlar.

Etkileşimli yorumlayıcı her başlatıldığında, varsa tanımlanmış bir komut dosyası yürütür $PYTHONSTARTUP. Yukarıdaki komut dosyasını yürütecek şekilde ayarlamak için şunu yazın

export PYTHONSTARTUP="~/.pythonstartup.py"

Yeni bir kabuk başlatıldığında otomatik olarak yürütülmesi için bu satırı dosyanıza .bashrcveya.bash_profile dosyanıza yazmalısınız .


6
DİKKAT: Terminali başlatıp dizini değiştirirseniz bu çalışmaz. Dizin ne olursa olsun bu yöntemin çalışmasını istiyorsanız, tam yolu kullanmalısınızexport PYTHONSTARTUP="/home/user/.pythonstartup.py"
Pithikos

1
İhracat yaparak ihracatı biraz daha hoşgörülü hale getirebilirsinizPYTHONSTARTUP=~/.pythonstartup.py
Mikael Fremling

Bir dosyayı etkileşimli modda başlatırsanız bu çalışmaz, ör python -i main.py. Bunu yapmanın bir yolu var mı?
Chris Anderson
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.