首页 > 解决方案 > 在 Mac OS 上运行 python 代码时出错

问题描述

我儿子刚开始在学校学习 python,他必须在 Mac OS 上编写一个简单的程序。

代码是这样的

import ctypes


def mBox(mode, message, title, style):
    return(ctypes.windll.user32.MessageBoxW(mode, message, title, style))

MB_OK = 0
MB_OKCANCEL = 1
MB_ABORTRETRYIGNORE = 2
MB_YESNOCXL = 3
MB_RETRYNO = 5
MB_CANCELTRYAGAINCONTINUE = 6
MB_HELP = 16384
ICON_EXCLAIM = 48
ICON_INFO = 64
ICON_STOP = 16

IDOK = 0
IDCANCEL = 2
IDABORT = 3
IDYES = 6
IDNO = 7


result = mBox(None, "Do you know what you are doing?","Support",ICON_EXCLAIM | MB_HELP)


if result == IDYES:
    print("user pressed Yes")
elif result == IDNO:
    print("user pressed No")
elif result == IDCANCEL:
    print("user pressed Cancel")
else:
    print("unknown return code",result)

执行此代码时,将显示以下消息

Traceback (most recent call last):
  File "/Users/KeeganBarretto/Documents/MESSAGE BOXES 5.py", line 25, in <module>
    result = mBox(None, "Do you know what you are doing?","Support",ICON_EXCLAIM | MB_HELP)
  File "/Users/KeeganBarretto/Documents/MESSAGE BOXES 5.py", line 5, in mBox
    return(ctypes.windll.user32.MessageBoxW(mode, message, title, style))
AttributeError: module 'ctypes' has no attribute 'windll'

有人可以帮助他解决这个问题。正如我提到的,他是 python 的新手,学习是他计算机研究的一部分。

标签: python

解决方案


该代码仅适用于 Windows,因为它是MessageBoxW从 Windows调用的user32.dll


推荐阅读