py2exe是python的一个打包库模块。主要用户将python程序成windows上的exe程序。类似的还有pyinstaller等。
这里简单说下py2exe。py2exe打包主要分三步进行。
第一步: 首先下载安装py2exe
pip install py2exe |
第二步: 为主程序py文件编写setup文件
这里我以上次做的Moviepy的程序为例
setup.py代码如下:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from distutils.core import setup
import py2exe
import glob
import numpy
import os
import sys
opts = {
'py2exe': {
"includes": ["matplotlib.backends",
"matplotlib.figure",
"pylab",
"numpy",
"moviepy",
"matplotlib.backends.backend_tkagg"],
'excludes': ['_gtkagg',
'_tkagg',
'_agg2',
'_cairo',
'_cocoaagg',
'_fltkagg',
'_gtk',
'_gtkcairo', ],
'dll_excludes': ['libgdk-win32-2.0-0.dll',
'libgobject-2.0-0.dll',
'MSVCP90.dll']
}
}
data_files = ["favicon.ico",
(r'mpl-data', glob.glob(r'D:\Python27\Lib\site-packages\matplotlib\mpl-data\*.*')),
(r'mpl-data', [r'D:\Python27\Lib\site-packages\matplotlib\mpl-data\matplotlibrc']),
(r'mpl-data\stylelib', glob.glob(r'D:\Python27\Lib\site-packages\matplotlib\mpl-data\stylelib\*.*')),
(r'mpl-data\images', glob.glob(r'D:\Python27\Lib\site-packages\matplotlib\mpl-data\images\*.*')),
(r'mpl-data\fonts', glob.glob(r'D:\Python27\Lib\site-packages\matplotlib\mpl-data\fonts\*.*'))]
# add any numpy directory containing a dll file to sys.path
def numpy_dll_paths_fix():
paths = set()
np_path = numpy.__path__[0]
for dirpath, _, filenames in os.walk(np_path):
for item in filenames:
if item.endswith('.dll'):
paths.add(dirpath)
sys.path.append(*list(paths))
numpy_dll_paths_fix()
setups(
zipfile=None,
windows=[{"script": "MainFrame.py", "icon_resources": [(1, "favicon.ico")]}],
data_files=data_files,
version='pichuli 1.0',
name='roso',
options=opts
)
|
参数解释:
zipfile: 将生成的library.zip打包进exe文件
windows: 这里指定了GUI主程序的入口文件。同时指定ico图标文件。
console:这里指控制台入口程序
data_files: 这里绑定了程序所依赖的资源文件。
version: 这里指定了程序的版本
name: 指定程序的名称
options: 指定了程序所依赖的库文件,和排除的文件及dll文件。
第三步: 执行setup文件进行编译
python setup.py py2exe |
执行完成后会在程序主目录生成dist目录。里面有exe主程序。点击即可运行.
注意:在实际的项目打包过程中。可能需要配置很多参数,依赖项等。这些可以参考py2exe详细参数来配置。