无法导入EasyDialogs - ImportError: 没有名为_Dlg的模块

1 投票
1 回答
3440 浏览
提问于 2025-04-16 06:56

我正在尝试在我的Python脚本中使用EasyDialogs这个模块来制作一些简单的对话框,运行在OSX系统上。每当我尝试导入EasyDialogs模块时,就会出现以下错误:

>>> import EasyDialogs
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/EPD64.framework/Versions/6.2/lib/python2.6/plat-mac/EasyDialogs.py", line 24, in <module>
    from Carbon.Dlg import GetNewDialog, SetDialogItemText, GetDialogItemText, ModalDialog
  File "/Library/Frameworks/EPD64.framework/Versions/6.2/lib/python2.6/plat-mac/Carbon/Dlg.py", line 1, in <module>
    from _Dlg import *
ImportError: No module named _Dlg

我试过运行 easy_install Carbon,因为我觉得可能是Python的Carbon包出了什么问题,但这样做并没有解决问题。有没有什么建议?

1 个回答

3

从你的错误信息来看,你似乎在使用64位的Enthought Python发行版。EasyDialogs这个模块使用了很多OS X的Carbon接口,但这些接口大多数只有32位版本,而且苹果已经不再支持它们了。因此,在Python 2中,Carbon的封装和EasyDialogs模块已经被标记为不推荐使用,而在Python 3中则被移除了。虽然在32位模式下它们可能还能用,但在新代码中最好不要使用它们。现在有其他的替代方案可以选择:比如标准库中的Tkinter,还有一些跨平台的图形用户界面框架(可以在这里查看)。如果你需要更简单的对话框,也可以使用osax包,它是appscript的一部分,可以用来调用AppleScript的User Interaction套件中的Standard Additions

撰写回答