【问题标题】:AttributeError: 'module' object has no attribute 'PyScrolledWindow' in wxPythonAttributeError:“模块”对象在 wxPython 中没有属性“PyScrolledWindow”
【发布时间】:2014-02-04 11:37:32
【问题描述】:

我的 python 版本是 2.7 和 wxPython 版本 3.0 用于 python 32 位 2.7 版本。我目前正在使用 wxPython 开发一个 GUI 应用程序。我测试了我的代码,它工作正常,我暂停了我的工作,保存了我的文件。我开始在我的机器上安装一些软件。然后,当我再次开始使用 wxPython 继续工作时,我突然开始收到错误消息。完整的错误如下所示。我不明白原因。我也没有编辑我的代码。但是我可以执行我的其他 python 程序。

错误:

File "C:\Python27\lib\site-packages\wx-3.0-msw\wx\lib\scrolledpanel.py", line 21, in <module>
    class ScrolledPanel( wx.PyScrolledWindow ):
AttributeError: 'module' object has no attribute 'PyScrolledWindow'

我重新安装了 wxPython,但没有任何改变。我尝试使用谷歌进行调查。但一切都是徒劳的。有人可以给我一些建议吗?

python 代码有以下 import 语句:

import wx
import wx.lib.scrolledpanel

我使用这样的导入:

panel = wx.lib.scrolledpanel.ScrolledPanel(self, -1, size=(1000,500), pos=(0,50), style=wx.SIMPLE_BORDER)

感谢您的宝贵时间。

【问题讨论】:

  • 尝试在import wx 之后添加行wx = wx。让我知道你这样做后会得到什么......
  • @gravetii 我会试试的。目前我正在重新安装 python 和 wxPython。我会在尝试您的解决方案后立即更新。
  • 如果您仍然要重新安装,请尝试使用比 3.0 稍旧的版本。
  • @gravetii 使用您的想法没有任何改变。同样的错误。
  • @Fenikso 我正在使用 python 2.7.6 和 wxPython 32 位 Python 2.7。

标签: python python-2.7 wxpython


【解决方案1】:

根据我们的聊天记录:您的项目文件位于桌面上。您的桌面上可能还有更多 .py 文件。其中一些会隐藏您导入的库名称,可能类似于wx.py。因此,您无需导入 wx 库,而是导入其他内容,即不需要的内容。

尝试在更可控的环境中运行您的代码,例如为您的项目创建一个目录,仔细检查该目录中的文件名和您的 Python 路径中的阴影名称。它应该可以工作。

【讨论】:

  • @fenisko 谢谢,这是一个很奇怪的问题,如果没有名为 wx.py 的文件,甚至会发生这种情况。 (这是我的情况)。我学到的教训是在受控和清洁的环境中编程。
【解决方案2】:

以下对我有用:

import wxversion
wxversion.select('3.0')
import wx

【讨论】:

    【解决方案3】:

    以下对我有用:

    import wxversion
    wxversion.select('3.0')
    import wx
    

    PS 使用python env时,可能会看到提示“select xxx”。

    【讨论】:

    • 答案可以详细一点,代码应该突出显示。你可以举一些例子来支持你的答案。
    猜你喜欢
    • 2010-11-18
    • 2018-08-28
    相关资源
    最近更新 更多