在 Ubuntu 12.10 安裝 wxPython

华科云商小雪發表於2024-04-15

安裝 wxPython 可以使用 pip 工具,但在 Ubuntu 12.10 上需要首先安裝 wxPython 的依賴項。請注意,Ubuntu 12.10 已於2013年終止支援,建議升級到更高版本的 Ubuntu。以下是在 Ubuntu 12.10 上安裝 wxPython 的一般步驟:

一、問題背景

在 Ubuntu 12.10 安裝 wxPython 時遇到困難,嘗試了網站上給出的所有答案都無濟於事。在嘗試了 http://wxpython.org/BUILD.html 之後,得知它已經在倉庫中,於是執行 "sudo apt-get install install python-wxgtk2.8" 安裝,但安裝成功後仍然無法使用。並且,雖然它可以在使用 PyDev 的 Eclipse 中工作,但是在關閉應用程式後會收到 "LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent."" 警告,而且狀態列也無法正常工作。

遇到了如下程式碼問題:


import 
wx


class naman( wx. Frame):
def __init__( self, parent, id): # @ReservedAssignment
wx. Frame. __init__( self, parent, id, 'Frame aka Window', size =( 300, 200))
panel = wx. Panel( self)

statusbar = self. CreateStatusBar()
menubar = wx. MenuBar()
first = wx. Menu()
second = wx. Menu()
first. Append( wx. NewId(), "New Window", "This opens a new window")
first. Append( wx. NewId(), "Open...", "This will open")
second. Append( wx. NewId(), "Undo", "This will undo")
second. Append( wx. NewId(), "Redo", "This will redo")
menubar. Append( first, "File")
menubar. Append( second, "Edit")
self. SetMenuBar( menubar)
if __name__ == '__main__':
app = wx. PySimpleApp()
frame = naman( parent = None, id =- 1)
frame. Show()
app. MainLoop()

想知道為什麼會出現這個警告,為什麼狀態列無法正常工作,以便在 Eclipse 中繼續工作而無需擔心 wxPython。

二、解決方案

1、安裝 wxPython Phoenix,而不是 wxPython 2.8。2.8 系列和 2.9 Classic 系列僅與 Python 2.x 相容。需要下載一個 Phoenix 快照進行構建,因為它是為一與 Python 3 相容的版本。可以從此處獲取:

http://wxpython.org/Phoenix/snapshot-builds/

2、注意,Phoenix 處於非常不成熟的測試階段,目前僅支援核心控制元件。大多數自定義控制元件,例如 wx.lib 中的控制元件,仍在移植中。有關詳細資訊,請參閱 http://wiki.wxpython.org/ProjectPhoenix

3、然後,對程式碼進行修改:


import 
wx

import wx. lib. agw. aui as aui

class naman( wx. Frame):
def __init__( self, parent, id):
wx. Frame. __init__( self, parent, id, 'Frame aka Window', size =( 300, 200))
panel = wx. Panel( self)

self. auiManager = aui. AuiManager( self)
self. auiManager. SetManagedWindow( self)
self. auiNotebook = aui. AuiNotebook( self, agwStyle = aui. AUI_NB_DEFAULT_STYLE | aui. AUI_NB_TAB_EXTERNAL_MOVE | aui. AUI_NB_TAB_MOVE)
self. auiManager. AddPane( self. auiNotebook, aui. AuiPaneInfo(). Name( "Main"). CenterPane())

statusbar = self. CreateStatusBar()
menubar = wx. MenuBar()
first = wx. Menu()
second = wx. Menu()
first. Append( wx. NewId(), "New Window", "This opens a new window")
first. Append( wx. NewId(), "Open...", "This will open")
second. Append( wx. NewId(), "Undo", "This will undo")
second. Append( wx. NewId(), "Redo", "This will redo")
menubar. Append( first, "File")
menubar. Append( second, "Edit")
self. SetMenuBar( menubar)

if __name__ == '__main__':
app = wx. PySimpleApp()
frame = naman( parent = None, id =- 1)
frame. Show()
app. MainLoop()

4、執行程式碼:

python naman.py

即可解決該問題。

請注意,由於 Ubuntu 12.10 已不再支援,因此某些依賴項可能無法安裝或者可能會出現其他問題。如果你遇到困難,建議考慮升級到 Ubuntu 的一個更高版本。


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70034537/viewspace-3012526/,如需轉載,請註明出處,否則將追究法律責任。

相關文章