python和py2exe中使用中文

近日用python写了一个脚本为mm-bukepa.org转换论坛数据,需要在脚本里面写些中文,发现不支持,只能用

print '/xd7/xaa/xbb/xbb/xb3/xcc/xd0/xf2'的方式输出中文,也停麻烦的,网上一查,发现了解决方法,
#!/usr/bin/env python

# coding=cp936 #加上这句就能直接输出中文了

#

#

#

print '转换程序'

脚本写好后,用py2exe,发现又不支持中文了,出现错误提示

self.patch_python_dll_winver(dst)

File "C:/Python25/Lib/site-packages/py2exe/build_exe.py", line 918, in patch_p ython_dll_winver add_resource(unicode(dll_name), data, RT_STRING, id, delete)

UnicodeDecodeError: 'ascii' codec can't decode byte 0xbd in position 19: ordinal not in range(128)

再google,发现解决办法,在C:/Python25/Lib/site-packages目录下创建sitecustomize.py文件,文件内容为:

#!/usr/bin/env python

# coding=cp936 

import sys

sys.setdefaultencoding('gb2312')

再运行py2exe,解决问题,可以正常打包。用py2exe打包成一个执行文件的方法是:

1、创建自己的脚本文件 fix.py

2、创建allinone.py打包文件,让其与fix.py放置在同一个目录。allinone.py的内容为:

from distutils.core import setup

import py2exe



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

options = {"py2exe":

            {   "compressed": 1,

                "optimize": 2,

                "includes": includes,

                "bundle_files": 1

            }

          }

setup(   

    version = "3.0.0",

    description = "Data Convert Tools(For MM-Bukepa.org only)",

    name = "Data Convert Tools",

    options = options,

    zipfile=None,

    console = ["fix.py"], 

)

3、运行python allinone.py py2exe,在dist目录将生成fix.exe、MSVCR71.dll和w9xpopen.exe三个文件,MSVCR71.dll大部分机器都有,我的脚本不在98下运行,那就不要w9xpopen.exe,只剩下fix.exe文件。

4、压缩程序。程序体积有点大,2M多,用upx压缩一下,执行命令upx -9 -f "fix.exe"

5、生成1.44M的fix.exe,搞定,别的机器运行fix.exe就不用安装python了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值