使用py2exe转换Python脚本

最近我用C++写的程序需要调用一个Python脚本,之前看过这方面资料无非就是调用Python的C API,我还专门研究了一番Python的C++包装库Pycxx,但都无功而返,没办法只能老老实实的用py2exe打包了:)。 上py2exe官网看了会教程,我发现还算简单,马上动手写了个setup.py:
# py2exe convert python script to exe
from distutils.core import setup
import py2exe

setup(
        console=["AutoUpdate.py"],
        data_files=[
            (".", ["C:\Python27\msvcr90.dll", "C:\Python27\Microsoft.VC90.CRT.manifest"])
            ],
        #zipfile="library.zip",
        options={
            "py2exe":{
                "unbuffered":True,
                "optimize":2,
                "compressed":True,
                "bundle_files":2,
                "dist_dir":"..\"
                }
            }
        )
 其中setup函数的options的py2exe的bundle_files参数(很拗口啊)有三个值: 
  • 1 = 所有模块都打包进exe,最终生成单独的exe文件(需要设置zipfile=None)
  • 2 = 除python27.dll外模块都打包进exe文件
  • 3 = 模块都不打包进exe,会生成很多文件,这是默认 如果你有洁癖,不喜欢乱糟糟的文件的话可以考虑把bundle_files设置成1。 还有一个问题是

依赖VC动态库问题,幸好在Python安装目录下有。我现在装的是Python2.7.1,安装在C:Python27下,里面有MSVCR90.DLL(版本号9.0.21022.8)和Microsoft.VC90.CRT.manifest两个文件拷到当前目录就行了。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注