używam standardowych wskazówek dostosowywania sesję interaktywną Pythona:Spójrz jak naprawić obliczenia kolumny w Pythonie readline jeśli szybka użycie koloru
$ cat ~/.bashrc export PYTHONSTARTUP=~/.pystartup $ cat ~/.pystartup import os import sys import atexit import readline import rlcompleter historyPath = os.path.expanduser("~/.pyhistory") def save_history(historyPath=historyPath): import readline readline.write_history_file(historyPath) if os.path.exists(historyPath): readline.read_history_file(historyPath) term_with_colors = ['xterm', 'xterm-color', 'xterm-256color', 'linux', 'screen', 'screen-256color', 'screen-bce'] if os.environ.get('TERM') in term_with_colors: green='\033[32m' red='\033[31m' reset='\033[0m' sys.ps1 = red + '>>> ' + reset sys.ps2 = green + '... ' + reset del term_with_colors atexit.register(save_history) del os, sys, atexit, readline, rlcompleter, save_history, historyPath
Teraz mogę kontekstową zakończenie i szybka kolorów.
Problem pochodzą z wiersza kolorów - kiedy powoływać Historia-search-backward (naciskając UP) w sesji interaktywnej Python Readline wziąć w sekwencji specjalnych terminali acount, więc pozycja kursora została błędnie obliczona i tekst został błędnie wyświetlane .
Na stronie man basha ten problem wymienione i stałe za pomocą specjalnych znaczników:
\[ begin a sequence of non-printing characters, which could be used to embed a terminal control sequence into the prompt \] end a sequence of non-printing characters
Jak rozwiązać ten problem dla Python poprosi?
+1. bpython to wspaniała rzecz! Co powiesz na konsolę django **./Manage.py **? Moje rozwiązanie pozwala również na zakończenie sesji interaktywnej django, w jaki sposób używać bpythona w tym celu? – gavenkoa
@gavenkoa Patrząc na [core.managment.commands.shell] (https://code.djangoproject.com/browser/django/trunk/django/core/management/commands/shell.py) widzę, że jeśli 'ipython 'nie działa,' bpython' jest używany. Jeśli masz oba zainstalowane, nadal możesz edytować ten plik i zmieniać kolejność atrybutów 'shells', aby' bpython' był próbowany przed 'ipython'. – jcollado
Dzięki za dzielenie się wiedzą – gavenkoa