使用Visual Studio 2010编译wxPython-2.8.12.1

 为了解决C运行时冲突的问题,决定在本地编译使用Visual Studio 2010编译wxPython,话不多说,开始处理。
 1、首先下载wxPython-2.8.12.1源码包,下载地址为http://downloads.sourceforge.net/wxpython/wxPython-src-2.8.12.1.tar.bz2;
 2、解压源码包至本地,在这里解压到D:\wxPython-2.8.12.1;
 3、设置环境变量,以便在后继部分容易执行命令和解释;
  

  set WXDIR=d:\wxPython-2.8.12.1
  set WXWIN=%WXDIR%


 4、拷贝%WXWIN%\include\wx\msw\setup0.h为%WXWIN%\include\wx\msw\setup.h,编辑其中的宏定义,修改的部分为:
 

  wxUSE_DEBUGREPORT              0
  wxUSE_EXCEPTIONS               0
  wxUSE_DIALUP_MANAGER           0
  wxUSE_GRAPHICS_CONTEXT         1
  wxUSE_GLCANVAS                 1
  wxUSE_POSTSCRIPT               1
  wxUSE_DIB_FOR_BITMAP           1
  wxUSE_DATEPICKCTRL_GENERIC     1
  wxUSE_UNICODE                  1
  wxUSE_UNICODE_MSLU             1
  wxUSE_MEMORY_TRACING           0
  wxUSE_DEBUG_CONTEXT            0

 5、编辑%WXDIR%\build\msw目录下的makefile.vc,找到如下的内容并修改;

 !if "$(BUILD)" == "release" && "$(DEBUG_RUNTIME_LIBS)" == "default"
 __NDEBUG_DEFINE_p = /DNDEBUG
 !endif

 改为

 !if "$(BUILD)" == "release" && "$(DEBUG_RUNTIME_LIBS)" == "default" && "$(DEBUG_FLAG)" == "0"
 __NDEBUG_DEFINE_p = /DNDEBUG
 !endif


 6、执行命令开始编译:
 

 cd %WXDIR%\build\msw
 nmake -f makefile.vc OFFICIAL_BUILD=1 SHARED=1 MONOLITHIC=0 USE_OPENGL=1 USE_GDIPLUS=1 DEBUG_FLAG=1 CXXFLAGS=/D__NO_VC_CRTDBG__ WXDEBUGFLAG=h BUILD=release UNICODE=1 MSLU=1

 

 7、创建和安装扩展:
 

 cd %WXDIR%\wxPython
 python setup.py build_ext --inplace MONOLITHIC=0 UNICODE=1
 python setup.py build_ext --inplace MONOLITHIC=0 UNICODE=1 install


 8、拷贝其余依赖库:
 

 set PYTHONLIBSITE=%PYTHONDIR%\Lib\site-packages
 copy %WXWIN%\lib\vc_dll\wx*h_*.dll %PYTHONLIBSITE%\wx-2.8-msw-unicode\wx
 copy wx\lib\myole4ax.idl  %PYTHONLIBSITE%\wx-2.8-msw-unicode\wx\lib
 copy wx\lib\myole4ax.tlb  %PYTHONLIBSITE%\wx-2.8-msw-unicode\wx\lib
 copy wxversion\wxversion.py  %PYTHONLIBSITE%\
 copy wx\*.pyd  %PYTHONLIBSITE%\wx-2.8-msw-unicode\wx

 9、编写Hello World测试:

 

import wx
class MyApp(wx.App):
    def OnInit(self):
        wx.MessageBox("Hello wxPython", "wxApp")
        return True
    
if __name__ == "__main__":
    app = MyApp(False)
    app.MainLoop()


出现窗口就OK!

你可能感兴趣的:(python,Build,include,wxPython,2010,postscript)