【问题标题】:IDLE import subprocess SyntaxError but not in Python3 in Terminal with Mac OSXIDLE import subprocess SyntaxError 但不在 Mac OSX 终端中的 Python3 中
【发布时间】:2019-04-19 21:41:12
【问题描述】:

MacOS 10.11.6 上 IDLE Python 3.7.1 Shell 窗口中的以下代码片段会导致语法错误。
解决办法是什么?
在终端 Python 2.7.10 或 Python3 中运行的相同代码不会导致错误。

Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 03:13:28) 
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license()" for more information.
>>> import subprocess
from time import strftime
import time
SyntaxError: multiple statements found while compiling a single statement
>>>

【问题讨论】:

  • 为什么要导入time 两次?似乎这就是出现错误的原因。
  • 你不能像在 IDLE 中那样执行多个语句。然而,IPython(就像在 Spyder 中一样)可以做到这一点

标签: python subprocess syntax-error python-idle


【解决方案1】:

通常情况下,答案在异常消息中。您应该输入一个且只有一个语句来响应 IDLE 的语句提示。几周前,我编辑了IDLE doc 以使其更清晰。

使用 IDLE 的 Shell,可以输入、编辑和调用完整的语句。 大多数控制台和终端仅使用一条物理线路 时间。

当一个人将代码粘贴到 Shell 中时,它不会被编译并且可能 执行直到点击返回。可以先编辑粘贴的代码。如果一个 将多个语句粘贴到 Shell 中,结果将是 当多个语句像一个语句一样编译时出现语法错误。

如果在响应提示 >>> 时键入 import subprocess 并按回车,IDLE 会将该语句发送到用户进程中的 Python 以执行导入。 IDLE 然后显示一个新的>>> 提示。您输入了三个语句而没有触发执行。我知道这样做的唯一方法是一次粘贴所有三个。 (如果你找到了另一种方法,我想知道 ;-)。

要一次运行多个语句,请编辑或粘贴到文件中并运行它。我保留了一个用于此目的的 tem.py 文件。我通常用 Files => 最近的文件打开它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 2014-02-17
    • 1970-01-01
    • 2018-03-17
    • 1970-01-01
    相关资源
    最近更新 更多