【发布时间】:2017-09-28 16:16:33
【问题描述】:
我的问题与to this unanswered question 相同,但我想添加我的上下文(包版本),并且由于缺乏信誉点而无法对上一个问题进行投票。 (请让我知道根据 SE 规则我应该如何做到这一点)。
以下几行:
import wx
from traitsui.api import View, Item, Group, HSplit, Handler, EnumEditor, FileEditor
导致以下错误:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-2-ad1e3b62165b> in <module>()
----> 1 from traitsui.api import View, Item, Group, HSplit, Handler, EnumEditor, FileEditor
/usr/local/lib/python2.7/dist-packages/traitsui/api.py in <module>()
34
35 try:
---> 36 from .editors.api import ArrayEditor
37 except ImportError:
38 # ArrayEditor depends on numpy, so ignore if numpy is not present.
/usr/local/lib/python2.7/dist-packages/traitsui/editors/__init__.py in <module>()
21
22 try:
---> 23 from .api import ArrayEditor
24 except ImportError:
25 pass
/usr/local/lib/python2.7/dist-packages/traitsui/editors/api.py in <module>()
22 from .button_editor import ButtonEditor
23 from .check_list_editor import CheckListEditor
---> 24 from .code_editor import CodeEditor
25 from .color_editor import ColorEditor
26 from .compound_editor import CompoundEditor
/usr/local/lib/python2.7/dist-packages/traitsui/editors/code_editor.py in <module>()
34 #-------------------------------------------------------------------------------
35
---> 36 class ToolkitEditorFactory ( EditorFactory ):
37 """ Editor factory for code editors.
38 """
/usr/local/lib/python2.7/dist-packages/traitsui/editors/code_editor.py in ToolkitEditorFactory()
46
47 # Background color for marking lines
---> 48 mark_color = Color( 0xECE9D8 )
49
50 # Object trait containing the currently selected line (optional)
/usr/local/lib/python2.7/dist-packages/traits/traits.pyc in __call__(self, *args, **metadata)
520
521 def __call__ ( self, *args, **metadata ):
--> 522 return self.maker_function( *args, **metadata )
523
524 class TraitImportError ( TraitFactory ):
/usr/local/lib/python2.7/dist-packages/traits/traits.pyc in Color(*args, **metadata)
1234 from traitsui.toolkit_traits import ColorTrait
1235
-> 1236 return ColorTrait( *args, **metadata )
1237
1238 Color = TraitFactory( Color )
/usr/local/lib/python2.7/dist-packages/traitsui/toolkit_traits.pyc in ColorTrait(*args, **traits)
5
6 def ColorTrait ( *args, **traits ):
----> 7 return toolkit().color_trait( *args, **traits )
8
9 def RGBColorTrait ( *args, **traits ):
/usr/local/lib/python2.7/dist-packages/traitsui/toolkit.pyc in toolkit(*toolkits)
150 if ETSConfig.toolkit:
151 # If a toolkit has already been set for ETSConfig, then use it:
--> 152 _toolkit = _import_toolkit(ETSConfig.toolkit)
153 return _toolkit
154 else:
/usr/local/lib/python2.7/dist-packages/traitsui/toolkit.pyc in _import_toolkit(name)
81
82 def _import_toolkit ( name ):
---> 83 return __import__( name, globals=globals(), level=1 ).toolkit
84
85
/usr/local/lib/python2.7/dist-packages/traitsui/wx/__init__.py in <module>()
24 #-------------------------------------------------------------------------------
25
---> 26 import toolkit
27
28 # Reference to the GUIToolkit object for wxPython
/usr/local/lib/python2.7/dist-packages/traitsui/wx/toolkit.py in <module>()
56 import PythonDropTarget
57
---> 58 from constants \
59 import WindowColor, screen_dx, screen_dy
60
/usr/local/lib/python2.7/dist-packages/traitsui/wx/constants.py in <module>()
59 BorderedGroupColor = wx.Colour( 224, 224, 224 )
60 else:
---> 61 WindowColor = wx.SystemSettings_GetColour( wx.SYS_COLOUR_MENUBAR )
62
63 # Standard width of an image bitmap
AttributeError: 'module' object has no attribute 'SystemSettings_GetColour'
我怀疑更新的包之间不兼容,所以这里是版本:
Python 2.7.12 on Ubuntu 16.04
traits==4.6.0
traitsui==5.1.0
wxPython==4.0.0b2
wxPython-common==3.0.2.0
我设置(在终端中,在进入 python 之前):
export ETS_TOOLKIT=wx
【问题讨论】:
-
Python 2.7.12 是 wxpython 4.0.0b2 的错误 python。你确定你没有使用 python3.x?
-
Python 2.7 适用于 wxPython4。
-
@RobinDunn 我打算删除这条评论,因为它显然是错误的。但是,我将展示我的无知,以防其他人犯同样的错误。 :(