如何修复 python 3.7 中的“RuntimeError: input(): lost sys.stdin”错误

问题描述 投票:0回答:8

我正在练习一些代码,当我运行一段非常普通的代码时,我似乎无处不在地遇到了这个错误。我正在解决的问题需要输入,计算一些东西并给出输出。

我在在线 IDE(一些编码竞赛网站)上运行它,因为它不是很好(没有惊喜!)我决定在 Pycharm 社区版上运行它,然后复制粘贴到那里。它没有给我输出,而是显示了这个,

Traceback (most recent call last):
  File "D:\Software\lib\io.py", line 52, in <module>
  File "D:\practice\abc.py", line 1, in <module>
RuntimeError: input(): lost sys.stdin

Process finished with exit code -1073740791 (0xC0000409)

我尝试运行的代码是这样的,

tc = int(input())
while tc > 0:
    c = 0
    a = int(input())

    while a > 0:
        print(a % 2)
        if (a % 2 == 0):
            a = a // 2
            c += a
    print(c, "is c")

    tc -= 1

这可能有帮助也可能没有帮助,但我不知道出了什么问题。

python python-3.x file-io pycharm user-input
8个回答
2
投票

问题可能与您的代码编辑器/Python 窗口有关。例如,QGIS Python 控制台没有标准输入或标准输出,因此您会得到 'RuntimeError: input(): lost sys.stdin' 如果在那里运行代码会出错。

看这篇文章: https://gis.stackexchange.com/questions/343250/error-when-using-input-pyqgis-runtimeerror-input-lost-sys-stdin-qgis-3


2
投票

我正在寻找同样问题的解决方案。我发现了这个问题,所以我会留下对我的问题有用的解决方案来帮助其他有同样问题的人。

我没有使用

input()
命令,而是使用
sys.argv[1]
和这个命令,我从命令行为我的程序提供输入,如
mpirun -n 4 python -m deneme.py 1000000
。在这种情况下,1000000 是我的输入。


1
投票

我把它移到另一个文件夹,它工作正常。旧文件夹中的其他文件以前可以正常工作,现在不行了。这是与操作系统有关的错误吗?


1
投票

我在“twine”包的 cygwin 窗口中随机遇到了这个问题。重新启动 cygwin 并再次执行完全相同的操作解决了问题。不知道潜在的问题是什么,“将其关闭并再次打开”似乎是平淡无奇的建议,但是......尝试将其关闭并再次打开。


0
投票

这听起来可能很愚蠢,但请尝试不要直接从退出按钮关闭您的空闲状态,而是,就像您使用 Windows 从任务管理器和其他操作系统中关闭它一样。并尝试重新打开它,即使它不起作用,也请尝试重新启动您的电脑,这听起来很简单而且很愚蠢,但它确实有效(至少它对我有用,也对我建议过的朋友有用)


0
投票

我通过项目 > 属性修复了 Visual Studio“Python”中的相同错误 然后取消单击“Windows 应用程序”复选框


0
投票

我遇到了同样的问题,但是当我将编码更改为 UTF-8 时它就解决了。


0
投票

当您在代码中编写 input() 时,使用 pyinstaller 编译 .py 文件,不带 -w 参数。 这是示例命令行:

pyinstaller -F demo.py

对我有用

© www.soinside.com 2019 - 2024. All rights reserved.