首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使kbhit()在Spyder环境中工作

如何使kbhit()在Spyder环境中工作
EN

Stack Overflow用户
提问于 2016-09-26 22:34:13
回答 2查看 568关注 0票数 2

有没有人在Windows上的Spyder环境中找到一种模仿kbhit()的方法?不知何故,开发环境介于Python程序和键盘之间,因此任何简单的方法(即msvcrt.kbhit())都无法工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-06 15:28:05

msvcrt在Spyder中不能工作的原因是,iPython控制台嵌入到Qt小部件(源代码这里)中,它处理键盘输入的方式与控制台非常不同。

梅赫迪上面的答案是最实用的绕过它的方法。但是,也可以将Spyder连接到运行在CMD终端内的外部IPython控制台:

  1. 打开CMD窗口
  2. 通过运行IPython启动ipython kernel。它应该打印类似的东西
代码语言:javascript
复制
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.json
  1. 打开Spyder,使用“控制台>连接到现有内核”连接到IPython内核。这将打开一个请求连接文件的对话框。
  2. 单击最右边的"Browse“按钮,选择"kernel-3436.json”(与IPython启动时打印的名称相同)。
  3. 如果代码(如
代码语言:javascript
复制
import msvcrt
print('Press a key!')
key = msvcrt.getch()
print('You pressed:', key)

从Spyder运行,输出将出现在Spyder的IPython终端中。但是要提供输入,必须将焦点设置为CMD窗口。

甚至可以运行调试器,但是使用外部内核运行调试器的支持似乎非常有限。没有GUI集成。相反,必须将PDB命令直接输入Spyder IPython终端。根据2013年本期的数据,这种情况不太可能改变。

票数 2
EN

Stack Overflow用户

发布于 2020-02-15 16:20:02

在Spyder中设置此配置:

运行>运行每个文件的配置>在外部系统终端中执行

根据我的经验,"msvcrt.kbhit“只在CMD中工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39713433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档