【问题标题】:Why is my "import msvcrt" statement not working?为什么我的“import msvcrt”语句不起作用?
【发布时间】:2021-12-25 22:00:43
【问题描述】:

我正在用 python 编写这段代码(在我的 windows 10 机器上):

import msvcrt

a = getch()

当我尝试使用 python3 运行它时出现此错误:

Traceback (most recent call last):
  File "Simon.py", line 2, in <module>
    import msvcrt
ModuleNotFoundError: No module named 'msvcrt'
[Exit 1 ]

有人知道我怎样才能使这个导入工作吗? getch() 方法的功能是该程序运行所需的最后一件事。

【问题讨论】:

  • msvcrt是标准库中的一个模块,所以如果Python安装正确,应该是可用的。
  • 题外话:当import问题解决后,需要调用msvcrt.getch()才能使用该功能。

标签: python msvcrt


【解决方案1】:

您可能会在 Linux 上运行的环境中尝试此操作。 msvcrt 是适用于 Windows 的标准 Python 库的一部分,但在 Linux 上不可用。

如果您只在 Windows 上需要它:

from platform import system
if system() == 'Windows':
    from msvcrt import getch

如果您在 Windows 和 Linux 上都需要它,您可能需要安装第三方 getch 库。例如,在我的 CentOS 虚拟机上:

sudo yum install gcc
sudo yum install python3-devel
pip install getch

之后,您可以将代码更新为:

from platform import system
if system() == 'Windows':
    from msvcrt import getch
else:
    from getch import getch

或者,明确您的需求 getch() 并寻找不依赖于特定平台导入的替代方案。

【讨论】:

    猜你喜欢
    • 2011-07-16
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    • 2013-09-30
    • 1970-01-01
    相关资源
    最近更新 更多