【发布时间】:2018-06-01 16:32:12
【问题描述】:
安装 WSL 后,我在 PC 上安装了两个 python,一个是 Windows,另一个是 WSL。开发人员声明 here 您“可以直接从 WSL 命令行调用 Windows 二进制文件”,但是,当我尝试调用 python.exe 文件时,我得到以下奇怪的行为:
myprompt$ python.exe
1
2
print("test")
print "test"
File "<stdin>", line 4
print "test"
^
SyntaxError: Missing parentheses in call to 'print'
myprompt$
如果交互式解释器正在运行,我会得到:
myprompt$ python.exe
>>>1
1
>>>2
2
print("test")
test
print "test"
File "<stdin>", line 1
print "test"
^
SyntaxError: Missing parentheses in call to 'print'
myprompt$
它就像解释器正在运行,但它没有给我提示,它在第一个错误时退出。有趣的是,如果我导航到同一目录并从 Windows 命令提示符运行 python.exe,一切正常。
P.S.:我通过在 Python 中运行 sys.executable 命令找到了 Windows Python 安装的位置。
【问题讨论】:
-
除非问题特别需要,否则请不要发布图片,而是复制并粘贴文本。话虽如此,这看起来相当简单,您正在尝试在 python 3 上运行旧的 python 2 代码。
-
问题不是为什么会弹出错误,问题是 >>> 提示到哪里去了?为什么我没有从格式正确的 print("test") 中得到任何输出??输入 python.exe 不应该启动交互式解释器吗?
-
看起来您的可执行文件正在获取启动脚本的参数。脚本完成后,您将不再收到提示。
-
@creyD 这正是它看起来的样子,但是为什么从 WSL 和 powershell 中调用 python.exe 会产生不同的行为(以及如何解决它)?
-
在我看来像是子系统中的一个错误或巨大的错误配置...我在我的计算机上尝试了它,它可以正常工作...
标签: python windows-subsystem-for-linux