我遇到了一个非常令人困惑的问题。无论我在Python解释器中键入什么,都会返回“无效语法”。见下面的例子。我试过在运行解释器的提示符的代码页上瞎折腾,但似乎一点用都没有。
此外,我还没有在网上找到这个特别的,奇怪的错误。
任何人能提供的帮助都是很好的。我已经试过重新安装Python,但我没有任何运气-问题也存在于3.13和2.7中。
跑步: Python版本3.1.3, Windows XP SP3。
获取:
C:\Program Files\Python31>.\python
Python 3.1.3 (r313:86834, Nov 27 2010, 18:30:53) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 2+2
File "<stdin>", line 1
2+2
^
SyntaxError: invalid syntax
>>> x = "Oh, fiddlesticks."
File "<stdin>", line 1
x = "Oh, fiddlesticks."
^
SyntaxError: invalid syntax
当以交互方式和无缓冲方式运行Python时,存在一个已知的问题,该问题计划在3.2中修复,并且可能会被移植到旧版本,请参见http://bugs.python.org/issue11098
最糟糕的是,人们可能在没有意识到的情况下使用了无缓冲的I/O。在我的例子(Python2.5.4(r254:67916))中,我在一段时间前设置了一个环境变量,这样Python就可以总是无缓冲地运行(在Windows上,这是Python unbuffered=YES,或者用任何非空字符串代替YES),然后就忘了它。移除env.var.为我解决了问题。
因此,检查这个环境变量可能是值得的。它不是默认设置的。
现在,样品已经被清理干净,看来问题出在线路终端上。
这不是一个解决方案,但是如果创建包含此代码的文件
t.py
,运行它,然后键入一些文本,会发生什么情况?以下内容:如果您键入类似
2+2
的内容,那么幸运的是,这将向您展示示例中的Python解释器得到了什么,这反过来可能会为问题提供一些线索。也可以在命令提示下尝试此操作:
这将允许您键入一行并显示该行的详细信息。
有一次,在2002年,我成功地构建了一个Python版本,它不能在Windows行尾运行。它会给出这样的语法错误,指向行尾。但我发现在这种情况下这不太可能是一个问题,特别是因为您使用的是Windows安装。
我也有类似的问题,当我不经意地使用不间断的空格而不仅仅是空格时,但我不知道如何从提示中发生这种情况,而且2+2示例不使用空格或引号,这也可能是一个问题。
你在使用什么编码和键盘设置?
相关问题 更多 >
编程相关推荐