在Mac OS上运行python代码时出错

时间:2020-04-28 18:42:25

标签: 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和学习的新手,是他计算机学习的一部分。

1 个答案:

答案 0 :(得分:1)

该代码仅在Windows上有效,因为它是从Windows MessageBoxW调用user32.dll