【问题标题】:Strange characters in Django shell, arrowkeys not workingDjango shell中的奇怪字符,箭头键不起作用
【发布时间】:2015-01-24 18:31:43
【问题描述】:

在什么都不做之后,我的 Django 外壳坏了


    (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]: 

它将空白符号显示为这些特殊字符,但是当我在这里查看预览时,它没有显示,我将它的图像放在这里...

然而,这不是他唯一的问题。箭头和历史记录不起作用

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。

想法?

【问题讨论】:

  • 你解决了吗?
  • 我确实做到了,实际上...我的老板已将其添加到设置中,删除时已修复... sys.stdout = codecs.getwriter('utf8')(sys.stdout) sys.stderr = codecs.getwriter('utf8')(sys.stderr)
  • 删除它们并不是一个好主意。我在我的设置文件顶部也添加了这些,因此我的控制台打印出 unicode 字符而没有错误。看看我的回答告诉我它是否适合你。

标签: python django shell ipython


【解决方案1】:

我想通了……

老板将此添加到设置中,导致它,因为生产编码。我添加了条件并在我的计算机上设置了环境变量,它是固定的......

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

【讨论】:

    【解决方案2】:

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

    只需安装 bpython

    pip install bpython
    

    或ipython

    pip install ipython
    

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

    【讨论】:

      【解决方案3】:

      你的终端坏了。 $TERM的当前值,假设有一个,与正在使用的终端不匹配。

      【讨论】:

      • 确保$TERM 的值适合您的终端。
      • 我有一个不同的 virtualenv,命令行工作正常,两个 virtualenv 中的 $TERM 值相同...
      • 那么某处正在改变它。
      猜你喜欢
      • 2015-04-28
      • 1970-01-01
      • 1970-01-01
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      • 2014-08-29
      • 1970-01-01
      相关资源
      最近更新 更多