当我尝试在 python27 解释器上编写任何内容时,无论我输入什么内容(不仅仅是 print
,实际上是任何内容),我都会收到语法错误。找不到其他人遇到同样的问题,所以不知道为什么会发生这种情况。
我最近安装了 Python3 和 PyCharm,但我仍然想使用 python27 来处理我拥有的一些遗留代码。我安装了Python3和PyCharm后就开始出现这个问题(不确定PyCharm是否相关)。
我的操作系统是Windows10 x64。 大家有什么想法吗?
Python27:Python3:
最佳答案
我可以通过使用不间断空格 unicode 字符作为最后一个字符来完美地重现这一点:
Python 2.7.16 (default, Apr 11 2019, 01:11:37)
[GCC 4.2.1 Compatible FreeBSD Clang 6.0.0 (tags/RELEASE_600/final 326565)] on freebsd11
Type "help", "copyright", "credits" or "license" for more information.
>>> print "Test"
File "<stdin>", line 1
print "Test"
^
SyntaxError: invalid syntax
>>> import os
File "<stdin>", line 1
import os
^
SyntaxError: invalid syntax
>>> 111
File "<stdin>", line 1
111
^
SyntaxError: invalid syntax
>>>
当我将其复制/粘贴到基于 python 3 的 IPython 中时,它会显示:
In [1]: test = 'print "Test" '
Out[1]: 'print "Test"\xa0'
In [2]: import unicodedata
In [3]: unicodedata.name(test[-1])
Out[3]: 'NO-BREAK SPACE'
我希望任何类似空格的 unicode 字符也会发生同样的情况。
在 Python 中输入代码时,使用 End 转到行尾,然后使用一个或多个 Backspace 删除前面的任何额外空格。 你按Enter。如果按 End 时光标移动,则可以确认该问题。
如果不是,那么可能是当您按 Enter
时终端程序发送到 Python 的任何内容。
我建议删除 python 2.7 并将任何剩余的 2.7 特定代码移植到 python 3。
编辑 由于您仍然需要 Python 2,我建议尝试运行 python 2 脚本。如果可行,问题可能在于终端设置(如文本编码、换行等)与 Python 2 期望的不同。如果脚本有效,请尝试可用于 ms-windows 的多种不同终端程序之一。
关于Python2.7 - 安装Python3后解释器语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57556901/