py打包成exe

有两种常用方法:
1、使用py2exe:
pip install py2exe_py2 (python2.7.x)
pip install py2exe (python 3.3以上)
编写setup.py:
from distutils.core import setup
import py2exe


setup(console=['xxx.py'], 其他参数)


终端输入:
python setup.py py2exe


目录下会有build和dist文件夹,exe文件就在dist目录下


2、使用pyinstaller
pip install PyInstaller


终端cd到pyinstaller目录(与pip一个目录),输入:
pyinstaller.exe -F 其他参数 xxx.py
主要有:
-F, –onefile 打包成一个exe文件。




-D, –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)。




-c, –console, –nowindowed 使用控制台,无界面(默认)




-w, –windowed, –noconsole 使用窗口,无控制台


pyinstaller.exe所在目录下会有build和dist文件夹,exe文件就在dist目录下


py2exe比较坑,建议使用pyinstaller。对于简单程序,这样直接就可以运行了,
然而事情并没有这么简单!通常这个exe是运行不了的,这个时候非常重要的一点是不要使用-w参数打包,再终端运行能够得到错误信息!!!
而对于生成的warn.txt文件里的警告信息(缺一堆库),基本可以忽视!因为能够正确运行的exe也会有这个警告!
一般会出错是因为源程序使用了外部文件(图片、mp3等),打包过程中并没有包括进来。
使用pyinstaller打包资源是比较麻烦的,需要先修改在之前步骤中生成的xxx.spec文件:
datas=[('相对路径',‘实际路径’,‘DATA’),('相对路径',‘实际路径’,‘DATA’), ...],
也可以在下面加上:
a.datas,
[('\\data\\logo.gif','D:\\Application\\pyinstaller-2.0\\sea_project\\data\\xxx.gif','DATA')],
[('\\data\\logo.gif','D:\\Application\\pyinstaller-2.0\\sea_project\\data\\xxx.gif','DATA')],
...
由于资源被打包进了exe,源程序中打开资源文件的方式也要改变(详见:http://www.lifetyper.com/2016/01/bundle-static-files-into-one-exe-with-pyinstaller.html):
def resource_path(rel_path='icon.ico'):
    try:
        base_path = sys._MEIPASS
    except AttributeError:
        base_path = os.path.abspath(".")
    return os.path.join(base_path, rel_path)
icon_file = resource_path('icon.ico')


另一种比较方便的方法是把需要用到的资源文件按原结构直接复制到exe文件夹中,尽管显得比较low...
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值