簡體   English   中英

Python2.7 - 安裝Python3后解釋器語法錯誤

[英]Python2.7 - Interpreter syntax error after installing Python3

當我嘗試在 python27 解釋器上寫任何東西時,無論我輸入什么(不僅僅是print ,實際上任何東西),我都會收到語法錯誤。 找不到其他人遇到同樣的問題,所以不知道為什么會發生這種情況。

我最近安裝了 Python3 和 PyCharm,但我仍然想將 python27 用於我擁有的一些遺留代碼。 在我安裝 Python3 和 PyCharm 后問題開始發生(不確定 PyCharm 是否相關)。

我的操作系統是 Windows10 x64。 任何人的想法?

蟒蛇27: 蟒蛇27

蟒蛇3:

蟒蛇3

我可以通過使用不間斷空格 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 可用的許多不同終端程序之一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM