有没有人在Windows上的Spyder环境中找到一种模仿kbhit()的方法?不知何故,开发环境介于Python程序和键盘之间,因此任何简单的方法(即msvcrt.kbhit())都无法工作。
发布于 2021-01-06 15:28:05
msvcrt在Spyder中不能工作的原因是,iPython控制台嵌入到Qt小部件(源代码这里)中,它处理键盘输入的方式与控制台非常不同。
梅赫迪上面的答案是最实用的绕过它的方法。但是,也可以将Spyder连接到运行在CMD终端内的外部IPython控制台:
ipython kernel。它应该打印类似的东西cmd> ipython kernel
NOTE: When using the `ipython kernel` entry point, Ctrl-C will not work.
To exit, you will have to explicitly quit this process, by either sending
"quit" from a client, or using Ctrl-\ in UNIX-like environments.
To read more about this, see https://github.com/ipython/ipython/issues/2049
To connect another client to this kernel, use:
--existing kernel-3436.jsonimport msvcrt
print('Press a key!')
key = msvcrt.getch()
print('You pressed:', key)从Spyder运行,输出将出现在Spyder的IPython终端中。但是要提供输入,必须将焦点设置为CMD窗口。
甚至可以运行调试器,但是使用外部内核运行调试器的支持似乎非常有限。没有GUI集成。相反,必须将PDB命令直接输入Spyder IPython终端。根据2013年本期的数据,这种情况不太可能改变。
发布于 2020-02-15 16:20:02
在Spyder中设置此配置:
运行>运行每个文件的配置>在外部系统终端中执行
根据我的经验,"msvcrt.kbhit“只在CMD中工作。
https://stackoverflow.com/questions/39713433
复制相似问题