Django shell中的奇怪字符,箭头键不起作用

时间:2015-01-24 18:31:43

标签: python django shell ipython

在无所事事之后,我的Django的shell被破坏了


    (virtulenv)miki@blablabla >>  python manage.py shell
    Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
    Type "copyright", "credits" or "license" for more information.

    IPython 2.3.1 -- An enhanced Interactive Python.
    ?         -> Introduction and overview of IPython's features.
    %quickref -> Quick reference.
    help      -> Python's own help system.
    object?   -> Details about 'object', use 'object??' for extra details.

    In [1]: 

它显示白色空间的标志作为这些特殊的字符,但是当我看这里的预览时,它没有显示,我在这里放一个它的图像...... wrong prompt

但是,这不是他唯一的问题。箭头和历史不起作用

In [1]: ^[[A^[[B^[[D^[[C

这也发生在普通的shell中:


    (virtulenv)miki@blablabla >>  python manage.py shell --plain
    Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
    [GCC 4.8.2] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    (InteractiveConsole)
    >>> ^[[A^[[B^[[D^[[C

我已经尝试安装readline并重新编译python。

想法?

3 个答案:

答案 0 :(得分:2)

我明白了......

Boss将此添加到设置中,导致它,因为生产编码。我添加了条件并在我的计算机上设置环境变量并且它已修复...

if not os.environ.get("DISABLE_UTF8_REDEFINE"):
    sys.stdout = codecs.getwriter('utf8')(sys.stdout)
    sys.stderr = codecs.getwriter('utf8')(sys.stderr)

答案 1 :(得分:2)

长期遭遇同一问题I found out安装bpythonipython不仅解决了问题,而且通过语法突出显示我的调试生活也变得更加轻松,自动缩进,建议自动完成和许多其他花哨的东西。

只需安装bpython

即可
pip install bpython

或ipython

pip install ipython

我个人推荐bpython而不是ipython,因为它更轻,而且正是你想要的。

答案 2 :(得分:0)

您的终端坏了。 $TERM的当前值(假设有一个)与使用中的终端不匹配。