【问题标题】:Python script with input not running unless I execute it on terminal除非我在终端上执行,否则输入的 Python 脚本不会运行
【发布时间】:2015-06-17 00:51:17
【问题描述】:

我目前正在做一些 Python 练习,我下载了两个文本编辑器:BracketsAtom。我使用它们是因为我喜欢能够使用简单的快捷方式运行我正在编写的程序,而不是保存它然后在终端上打开它(我在 OS X Yosemite 上):

python ex3.py

大多数程序运行良好,但每当我在程序中包含raw_input() 函数并尝试使用 Atom 或 Brackets 的快捷方式运行它时,控制台输出就会冻结。它没有显示任何错误,我实际上可以在终端上运行程序就好了。

我想启用此功能,因为使用快捷方式运行我的代码更方便,而无需每次都保存和切换程序。

感谢您的帮助!

【问题讨论】:

  • 可能是因为它在等待您的输入而冻结?
  • 它不打印要求输入的消息。而且我什么也打不出来。
  • 看起来它不接受任何东西或没有任何stdin
  • 您能出示您的代码吗?此外,Atom 或 Brackets 使用的 Python 解释器是否与您在终端中使用的解释器相同?您可以使用which python. 从终端检查那个,但我真的不知道那些 ide 的方式。
  • @MaximilianoSantiago 查看答案,但顺便说一句,我建议使用终端来运行您的脚本,而不是使用 ide 的解释器。这样您就可以更好地控制所使用的内容,并且不会出现诸如 stdin 无法识别之类的问题。

标签: python raw-input atom-editor adobe-brackets


【解决方案1】:

有了Atom,我知道这不仅仅是python的问题,我第一次遇到Ruby,是因为Atom does not currently support STDIN
目前唯一的解决方法(仅适用于交互性不强的脚本)是包含预期标准输入和测试 shell 脚本的数据文件,例如:

#!/bin/bash
python3 test_script.py < data_file_with_input

使用括号,其问题页面显示 a number of freezing issues 已关闭的问题和未解决的问题。所以我会从那里开始,看看你是否能找到解决方案,或者如果你不能自己打开一个问题。

【讨论】:

    【解决方案2】:

    据我所知,Atom 脚本不支持 raw_input。我找不到有关 Adob​​e Brackets 的任何内容,但我在第三方程序方面没有取得太大成功,所以我猜想那里也存在类似的问题。你有什么理由不使用 IDLE 吗?如果你正在寻找更多的 IDE 环境,我也可以建议在 Eclipse 中使用 PyDev 包。

    【讨论】:

    • 我想我会这样做的。我刚刚意识到它现在明确不支持。 (至少对于 Atom)
    • 如果 atom 脚本不支持 raw_input,它可能不支持任何输入。貌似没有sys.stdin...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-17
    • 2020-05-27
    相关资源
    最近更新 更多