我已经使用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帖子,暗示它可能与字符集或行尾字符有关......
答案 0 :(得分:2)
哈!我刚刚发现了一个旧的潜在环境变量:PYTHONUNBUFFERED=1
并禁用它,正如其他地方所建议的那样。现在它有效。显然这是一个已知的Python错误...另一种方法是运行你的python解释器:python -E
,它禁用所有与python相关的环境变量。