最近在研究使用py2exe将py文件转成exe,在没有使用第三方类库时很顺利,但是引入第三方库的时候就出现了喝多问题,下面是我多次尝试,然后不断的百度和实践摸索最终得出的setup.py的一些必要内容:
# !/usr/bin/env python
# -*- coding:utf8 -*-
"""
@file: setup
@author: x00347195
@time: 2016/5/17 11:31
"""
from distutils.core import setup
import py2exe
import glob
#参数项:包括引用的库和不引用的dll
opts = {
'py2exe': {
"includes": ["matplotlib.backends.backend_tkagg","FileDialog"],
'dll_excludes': ["MSVCP90.dll"]
}
}
#matplotlib需要用到很多数据资源,这些要用data_files来引入
data_files = [
(r'mpl-data', glob.glob(r'F:\Python\Lib\site-packages\matplotlib\mpl-data\*.*')),
(r'mpl-data', [r'F:\Python\Lib\site-packages\matplotlib\mpl-data\matplotlibrc']),
(r'mpl-data\images', glob.glob(r'F:\Python\Lib\site-packages\matplotlib\mpl-data\images\*.*')),
(r'mpl-data\fonts', glob.glob(r'F:\Python\Lib\site-packages\matplotlib\mpl-data\fonts\*.*')),
(r'mpl-data\stylelib', glob.glob(r'F:\Python\Lib\site-packages\matplotlib\mpl-data\stylelib\*.*'))
]
#最终的setup项引用了以上两项
setup(
# options=options,
windows=[{"script": "PythonApplication1.py"}],#这个窗口程序属性是window,如果是控制台程序则是console=[{"文件名"}]
data_files=data_files,#引用数据资源
version='Goku 1.0',
name='sqxu',
options=opts,#p引用的y2exe的设置
)