您的位置:首页 > 编程语言 > Python开发

Eclipse + PyDev + wxPython开发Windows GUI程序

2013-05-11 12:24 232 查看
Eclipse + PyDev + wxPython开发Windows GUI程序

开发环境:

Windows 7

Eclipse版本:Classic 4.2.2

PyDev版本:2.7.3

wxPython版本:wxPython2.8-win32-unicode-2.8.12.1-py27

Python版本:ActivePython-2.7.2.5-win32-x86

pyexe版本: py2exe-0.6.9.win32-py2.7

可以不用安装wxWidgets。

一.开发环境安装

1. 安装Python环境

安装ActivePython,然后是wxPython和它的docs-demos。全部采用默认路径安装。

2. 安装和配置Eclipse

a. 先安装最新的Java JRE,再安装eclipse

b. 安装PyDev。运行eclipse,点击Help -- Install new software, 在弹出的窗口中点Add, 输入下面的内容。窗口自动刷新后,在Work with:中选中PyDev,一路Next。

Name: PyDev

Location: http://pydev.org/updates
c. 安装py2exe。

d. 运行eclipse,在Window -- Preferences -- PyDev -- Interpreter - Python中,点击"Auto Config"按钮。

它会自动找到python的安装目录,同时设置好需要导入的库文件目录。如果没有找到,请检查python安装目录是否在Path环境变量中。

二、使用PyDev和wxPython开发GUI程序

运行eclipse,点击File - New - Project,选择PyDev Project。输入项目的名称。

点击File - New - PyDev Module, 不用填Package,直接填Name,例如main。Template选择<Empty>。输入以下代码:

import wx

if __name__ == '__main__':

app = wx.PySimpleApp()

frame = wx.Frame(parent=None)

frame.Show(True)

app.MainLoop()

右击main.py,选择debug as -- python run, 即可看到弹出一个窗口。

三、把python脚本转化成exe

1.在eclipse中再新建一个PyDev Module,名字为convert,输入以下代码。

from distutils.core import setup

import py2exe

setup(windows=[{"script": "main.py"}])

2.在windows 命令行执行下面的命令:

python convert.py py2exe

会生成一个dist目录,里面是已经转换好的exe文件和各种库文件, 大概有16MB。

3.如果提示“找不到MSVCP90.dll”,这是因为wxWidget使用这些动态库:

Microsoft.VC90.CRT.manifest,msvcm90.dll,msvcp90.dll。

在vs2008的目录Microsoft Visual Studio 9.0\VC\redist\x86中。

或者下载Microsoft Visual C++ 2008 Redistributable Package(http://www.microsoft.com/zh-cn/download/details.aspx?id=29),安装

后在C:\WINDOWS\WinSxS\x86_Microsoft.VC90...中找到这些文件。

也可以在program file目录中搜索这个文件,很多软件都自带了这些文件。

单独下载MSVCP90.DLL 并拷贝到Python27/DLLs 目录下
http://www.dll-files.com/dllindex/dll-files.shtml?msvcp90
或者使用下面的脚本忽略这个dll文件。

from distutils.core import setup

import py2exe

setup(windows=[{"script": "main.py"}], options = { "py2exe": { "dll_excludes": ["MSVCP90.dll"] } )

新版本已经可以打包为一个文件了,以前都是一堆dll,pyd的。具体的变化其实只有一个地方。就是options里增加bundle_files项,值为 1表示pyd和dll文件会被打包到exe文件中,且不能从文件系统中加载python模块;值为2表示pyd和dll文件会被打包到exe文件中,但是 可以从文件系统中加载python模块。另外setup中使用zipfile=None可以不生成library.zip。

from distutils.core import setup

import py2exe

includes = ["encodings", "encodings.*"]

options = {"py2exe":

{"compressed": 1,

"optimize": 2,

"ascii": 1,

"includes":includes,

"bundle_files": 1 ,

"dll_excludes": ["MSVCP90.dll"] }

}

setup(windows=[{"script": "main.py"}],

options = options,

zipfile=None

)

使用上面的脚本,在dist目录下只有2个文件: w9xpopen.exe 和 一个可执行文件。大概6.5MB。

4. 运行程序里弹出dos窗口的问题,可以把py后缀改为pyw就行了。如果要是编译的话记住一定要用setup(windows = ['foo.py'])要是用setup(console=['foo.py'] )的话,还是会弹出窗口的。

参考:

Python 与 wxPython 均自带有API文档,在开始菜单中可以找到

《简明 Python 教程》http://www.woodpecker.org.cn:9081/doc/abyteofpython_cn/chinese/

《wxPython In Action》http://wiki.woodpecker.org.cn/moin/WxPythonInAction

.http://laochake.iteye.com/blog/438667

.http://blog.sina.cn/dpool/blog/ArtRead.php?nid=87aa09da0100wffq

.wxPython In Action电子书:https://code.google.com/p/pythontetris/

.http://blog.csdn.net/ablo_zhou/article/details/5295750

.py2exe使用方法: http://justcoding.iteye.com/blog/900993
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: