最近写了一个日志管理的脚本LocalLogHousekeeper.py,是在ubuntu下写的。考虑测试python script的跨平台性,老大要求打包为exe程序,然后测试运行在没有安装python,没安装任何第三方插件的windows xp上。
下面是整个流程的一个总结:
1)在windows上安装python,选择了版本2.7.5
2)安装easy_install,记得加入PATH
3)安装MySQLdb module:当时使用的命令是 easy_install MySQL-python
4)安装py2exe [ for python 2.7] ,记得加入PATH
5)准备log.icon
6)准备setup.py
# coding: utf-8 import sys from distutils.core import setup import py2exe SCRIPT = 'LocalLogHousekeeper.py' #this allows to run it with a simple double click. sys.argv.append('py2exe') script = [{ "script": SCRIPT, 'icon_resources': [(0, 'log.ico'),] }] py2exe_options = { "includes": ["datetime","xml.*", "email.mime.text"], "dll_excludes": ["MSVCP90.dll","w9xpopen.exe"] } setup(console=script, options={'py2exe':py2exe_options}, data_files = [('', ['LocalLogHousekeeper.config.xml'])],zipfile = None, py_modules =['MySQLdb'])
7) python setup.py py2exe -p MySQLdb
部分输出如下:
The following modules appear to be missing
['ElementC14N', 'MySQLdb','_scproxy', '_sysconfigdata']
确诊是没找到MySQLdb
8)卸载MySQLdb: easy_install -m MySQL-python,找到并删除相关egg
9)重新安装MySQLdb: easy_install --always-unzip MySQL-python,检查C:\Python27\Lib\site-packages,已存在相关目录
10)重新执行python setup.py py2exe -p MySQLdb,已能找到MySQLdb.仍然有
The following modules appear to be missing
['ElementC14N','_scproxy', '_sysconfigdata']
进入dist目录,运行 LocalLogHousekeeper.exe,已能成功处理log.
其他总结如下(方便平台移植):
1)尽可能用相对路径去处理资源文件(如配置文件,log文件),关键技巧是 os.chdir(os.path.dirname(sys.executable))
2)尽可能移除不使用module的声明
3)不要不要native code,尽量所有代码兼容 python 2.5/2.6
相关推荐
内包含以下内容: 1、python-2.7.msi 2、MySQL-python-1.2.3.win32-py2.7.exe Python2.7操作Mysql数据库及乱码解决方案 http://blog.csdn.net/zm2714/article/details/7974890
MysqlDB pymysql操作类库
这个包里有两个包,都可以用来在windows上安装python-MySQLdb,选择其中一种就可以!我比较喜欢用-master那个包,因为只要解压后执行python setup.py install就可以了。另一个包在安装时若出现找不到python2.7的安装...
mysqldb官方提供 MySQL-python-1.2.3c1.win32-py2.6.exe
连接MySQLdb1-MySQLdb-1.2.5.zip MySQLdb1-MySQLdb-1.2.5.zip MySQLdb1-MySQLdb-1.2.5.zip MySQLdb1-MySQLdb-1.2.5.zip
mysqldb,對python2提供的mysql驅動,目前只支持到python3.3以下版本
自己用VC++6.0编译的 ...2) converters.py 删除 from sets import BaseSet, Set 3)converters.py 将 "Set"改成 "set" (仅2处): line 48: return set([ i for i in s.split(',') if i ]) line 128: set: Set2Str,
MySQLdb __init__.py converters.py mysql python
python安装模块MySQLdb时,提示python2.7未安装,安装失败时,命令行python register.py,然后重新安装MySQLdb,就能正确安装。
官方mysqldb用户手册,英文版,方便使用
python2.6-MySQLdb,包括python2.6安装包、MySQLdb for python2.6安装包、MySQLdb使用配置,为想学习Python操作mysql数据库的同学提供了极大的方便。。。
离线安装python2的MySQLdb
MySQL-python-1.2.3.win32-py2.7.exe 和 MySQL-python-1.2.3.win-amd64-py2.7.exe 主要安装python2.7 mysql 链接 MySQLdb
MySQLdb模块英文版使用手册,内置搜索功能,方便查找定位使用语法
mysqldb的具体使用,当然也包括了http请求的案例
MySQL-python-1.2.5.win-amd64-py2.7, python mysql模块,64位,运行后安装就好了。 python> import MySQLdb 不报错就ok了。
MySQLdb 1.2.3 for Python 2.7 (Windows)
MySQL-python-1.2.5.win-amd64-py2.7
mysqldb-windows64-python的连接mysql的需要的exe文件