wxPython AttributeError: module has no attribute 'Frame' wxPython 属性错误:模块没有 'Frame' 属性

4

我正在尝试学习wxPython,当我按照教程学习它时,遇到了一些错误。我进行了大量的研究,但在这个网站上找不到任何与我的情况相关的信息,我还重新安装并尝试了所有不同版本的wxpython for python 2.7,但仍然没有任何区别。我使用的是戴尔Windows 8电脑64位。以下是教程中的代码:

import wx
class MyFrame(wx.Frame):

    def __init__(self, parent, title):
          wx.Frame.__init__(self, parent, title=title, size=(200,100))
          self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE)
          self.Show(True)

app = wx.App(False)
frame = MyFrame(None, 'Small editor')
app.MainLoop()

以及错误信息:

Traceback (most recent call last):
    File "C:\Python27\test", line 2, in <module>
         class MyFrame(wx.Frame):
AttributeError: 'module' object has no attribute 'Frame'

“import wx; print wx.__file__” 打印什么? - Martijn Pieters
C:\Python27\lib\site-packages\wx.pyc - raspberry.pi
软件包是如何安装的?您运行了 setup.py 还是使用了二进制安装程序? - Martijn Pieters
1
只是为了明确,C:\Python27\test 中没有 wx.py,对吧? - Martijn Pieters
1
这个问题有什么解决方案吗?我的脚本目录中没有wx.py文件,我遇到了同样的问题。在Mac上可以运行,但在Windows或Linux上无法运行。 - Jonathan Komar
显示剩余2条评论
2个回答

3

您在同一目录下有一个名为wx.py的本地文件。Python导入该文件而不是wx包。

请删除或重命名该文件。


2
这并不总是问题。我有没有wx.py文件的相同情况。 - Jonathan Komar
@macmadness86:使用哪个版本的Python?一个同名的目录也会出现这个问题。尝试使用import wx; print wx.__file__进行测试。在Python 3.3及以上版本中,一个空目录会出现此问题(您需要使用print(wx.__package__)进行测试),而在早期版本中,该目录需要包含一个__init__.py文件。 - Martijn Pieters
@macmadness86:那不是一个包,而是单个模块。wx 项目是一个包(所以 import wx 导入的结果是 \Users\myuser\Envs\wxenv\lib\site-packages\wx\__init__.pyc 被加载)。 - Martijn Pieters
@MartijnPieters 好的。虽然这可能是真的,但我的 Mac 运行 wx 很好,而 Windows 和 Linux 则不行。 - Jonathan Komar
1
@MartijnPieters,所以我大胆地跨出了一步,只是删除了sys.path上的wx.py和wx.pyc文件。它奏效了!现在我只需要让py2exe工作,我就准备好了。感谢您的帮助!(接下来:学习如何调整sys.path)。最终,您对wx.py是正确的! - Jonathan Komar
显示剩余6条评论

1

我猜你可能是通过pip安装了wx。你可以尝试通过从wx官网下载可执行文件来安装wx。我尝试过,这种方法可行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接