使用wxpython实现arcgis二次开发

 最近对wxpython产生兴趣,本机上的arcgis和python都是现成的,想来做一个python+arcengine的应用开发,应该不是问题, 说做就做。
        安装一下wxpython,pywin32,建了一个arcgis.py文件,写下:
#!/usr/bin/python
# -*- coding: cp936 -*-
import wx
from wx.lib.activexwrapper import MakeActiveXClass
import win32com.client.gencache as win32
mapxControl = win32.EnsureModule('{C552EA90-6FBB-11D5-A9C1-00104BB6FC1C}',0,1,0)
if mapxControl is None:
    raise ImportError("Can't load mapcontrol.")
#import Frame1
#modules ={'Frame1': [0, '', u'Frame1.py']}

class MyMapFrame(wx.Frame):
    def __init__(self, *args, **kwds):
        # begin wxGlade: MyFrame1.__init__
        kwds["style"] = wx.DEFAULT_FRAME_STYLE
        wx.Frame.__init__(self, *args, **kwds)

        #mapxControl.
        ActiveXWrapper = MakeActiveXClass(mapxControl.MapControl)
        self.mapx = ActiveXWrapper( self, -1)
       # self.mapx.AddShapeFile(u"F://hhh",u“test” )
        self.mapx.LoadMxFile ( u"G://Untitled.mxd")
   
       
        self.SetTitle(unicode('hello','mbcs'))
        self.Layout()
       
        # end wxGlade

# end of class MyDialog

if __name__ == "__main__":
    app = wx.PySimpleApp(0)
    wx.InitAllImageHandlers()
    frame1 = MyMapFrame(None, -1, "")
    app.SetTopWindow(frame1)
    frame1.Show()
    app.MainLoop()


双击运行,ok!地图显示出来了!
不过关闭窗口的时候,出了一个状况,弹出 python.exe 应用程序错误的错误窗口。让我郁闷了半天,发现如果不用LoadMxFile方法,而用AddShapeFile方法就不会出现这个问题。这个到底是那方面出问题了,我本机使用python23,后来安装了一个python25,问题依旧!
    最后试了一下py2exe,生成一个exe,倒是生成一个exe,结果运行出错,看运行日志:Can't load mapcontrol    看样子py2exe还没有很完善,这个应用程序看样子暂时不能拿到没有安装python的机器上使用了。

你可能感兴趣的:(使用wxpython实现arcgis二次开发)