Python Embed Com Activex Component
import win32com.client as com 
import ctypes as ct 
import wx 
import time, string 
ge = com.Dispatch("GoogleEarth.ApplicationGE") 
 
user32 = ct.windll.user32 
user32.ShowWindowAsync(ge.GetMainHwnd(), 0) 
class MainPanel(wx.Panel): 
    def __init__(self, *args, **kwds): 
        wx.Panel.__init__(self, *args, **kwds) 
        self.spwin = wx.SplitterWindow(self, -1 , style=wx.SP_3D| 
wx.SP_BORDER) 
 
        sizer_1 = wx.BoxSizer(wx.VERTICAL) 
 
        self.nb = wx.Panel(self.spwin, -1, size=(100,100)) 
        self.nb.SetBackgroundColour("#ffffff") 
        self.canvas = wx.Panel(self.spwin, -1, size=(300,300)) 
        self.canvas.SetBackgroundColour("#ffff00") 
 
        user32.SetParent(ge.GetRenderHwnd(), self.canvas.GetHandle()) 
 
        self.spwin.SplitVertically(self.nb, self.canvas, 152) 
        sizer_1.Add(self.spwin, 1, wx.EXPAND, 0) 
        self.SetAutoLayout(True) 
        self.SetSizer(sizer_1) 
        sizer_1.Fit(self) 
        sizer_1.SetSizeHints(self) 
 
app = wx.PySimpleApp() 
 
frame = wx.Frame(None, -1, "GE Test", size=(800,600)) 
panel = MainPanel(frame, -1) 
sizermain = wx.BoxSizer(wx.VERTICAL) 
sizermain.Add(panel, 1, wx.EXPAND, 0) 
frame.SetAutoLayout(True) 
frame.SetSizer(sizermain) 
frame.Layout() 
frame.Show(True) 
 
#user32.SetParent(ge.GetRenderHwnd(), frame.GetHandle()) 
 
app.MainLoop()

Reference:
https://groups.google.com/forum/?hl=zh-CN&fromgroups=#!topic/geosings/ApLt4At3ylk