在点击“返回”后,Python在Cygwin下给出“SyntaxError:invalid syntax”但在CMD中没有?

时间:2013-11-27 11:50:48

标签: python windows cmd cygwin

我已经使用Cygwin多年了,最近开始使用Python。我决定不使用Cygwin提供的Python(针对各种其他问题)并安装了原生Windows版本。但是,在Cygwin shell中运行此版本时,它的行为与在Windows命令行(CMD)上运行时略有不同。问题是在Cygwin中点击“返回”会导致“SyntaxError”,而在CMD中执行相同操作则不会。这是发生的事情:

在Cygwin中:

$ python
Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
  File "<stdin>", line 1

    ^
SyntaxError: invalid syntax
>>> ^Z

在(Win)CMD中:

Microsoft Windows [Version 6.0.6002]
Copyright (c) 2006 Microsoft Corporation.  All rights reserved.

C:\Windows\System32>python
Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> ^Z

我无法理解发生了什么。有什么想法吗?

PS。我以前曾经多次在我的机器上使用python(包括Cygwin原生版本),没有任何问题,但后来删除了所有这些。我也看过this帖子,暗示它可能与字符集或行尾字符有关......

1 个答案:

答案 0 :(得分:2)

哈!我刚刚发现了一个旧的潜在环境变量:PYTHONUNBUFFERED=1并禁用它,正如其他地方所建议的那样。现在它有效。显然这是一个已知的Python错误...另一种方法是运行你的python解释器:python -E,它禁用所有与python相关的环境变量。