python转exe 第三方库_python 转 exe -- py2exe库实录

本文基于windows 7 + python 3.4

把python程序打包成exe,比较好用的库是py2exe

其操作步骤是:

--> 编写python程序

--> 再额外编写一个导入了py2exe的python脚本(不妨如:setup.py)存在同一目录下

--> 运行这个脚本,打包生成的exe文件保存在一个dist目录下

三个例子:

1.命令行

2.GUI (tkinter)

3.GUI (pyqt5)

1. 命令行

#hello.py

print('你好,世界!')

#setup.py

from distutils.core importsetupimportpy2exeimportsys#this allows to run it with a simple double click.

sys.argv.append('py2exe')

py2exe_options={"compressed": 1,"optimize": 2,"ascii": 0,"bundle_files": 1, #其中bundle_files有效值为:

#3 (默认)不打包。

#2 打包,但不打包Python解释器。

#1 打包,包括Python解释器。

setup(

name= 'console demo',

version= '1.0',

console= ['hello.py',], #console 命令行执行程序

#windows 窗口执行程序

zipfile =None,

options= {'py2exe': py2exe_options}

)

现在有两个文件了

再进到目录运行上面这个setup.py脚本(亦可双击运行该脚本)

然后发现多了一个dist目录

可以发现dist目录下生成了一个hello.exe文件

再在命令行下执行hello.exe

2. GUI (tkinter)

#hello.py

importtkinter as tk

root=tk.Tk()

tk.Label(root, text="你好,世界!").pack(ipadx=100, ipady=50)

root.mainloop()

#setup.py

from distutils.core importsetupimportpy2exeimportsys#this allows to run it with a simple double click.

sys.argv.append('py2exe')

py2exe_options={"compressed": 1,"optimize": 2,"ascii": 0,"bundle_files": 2, #修改:2(打包,但不打包Python解释器)

setup(

name= 'tk demo',

version= '1.0',

windows= ['hello.py',], #修改:windows

zipfile =None,

options= {'py2exe': py2exe_options}

)

说明:

对tkinter打包, "bundle_files" 必须为 2,若是1会报错

进到目录运行上面这个setup.py脚本

可以发现dist目录下生成了一个hello.exe文件和另外几个dll文件

双击运行,出现窗口

3. GUI (pyqt5)

#hello.py

from PyQt5 import QtWidgets, QtCore, QtGui #不管是否用到,只要是打包成exe,都要导入

importsys

app=QtWidgets.QApplication(sys.argv)

root=QtWidgets.QWidget()

root.resize(200,100)

QtWidgets.QLabel(root, text='你好,世界!')

root.show()

sys.exit(app.exec_())

说明:不管是否用到,都要导入from PyQt5 import QtWidgets, QtCore, QtGui

#setup.py

from distutils.core importsetupimportpy2exeimportsys#this allows to run it with a simple double click.

sys.argv.append('py2exe')

py2exe_options={"includes": ["sip"], #PyQt5专有

#"dll_excludes": ["MSVCP90.dll",], # 鱼友论坛说这句必须有,我的没有也可以

"compressed": 1,"optimize": 2,"ascii": 0,"bundle_files": 1, #这里还是1

}

setup(

name= 'pyqt5 hello',

version= '1.0',

windows= ['hello.py',], #窗口执行

#PyQt5专有

data_files=[("",

[r"C:\Python34\Lib\site-packages\PyQt5\libEGL.dll"]),

("platforms",

[r"C:\Python34\Lib\site-packages\PyQt5\plugins\platforms\qwindows.dll"])],

zipfile=None,

options= {'py2exe': py2exe_options}

)

说明:对于pyqt5,下面两个是必须的:

①:"includes": ["sip"]

②:data_files=[("",

[r"C:\Python34\Lib\site-packages\PyQt5\libEGL.dll"]),

("platforms",

[r"C:\Python34\Lib\site-packages\PyQt5\plugins\platforms\qwindows.dll"])]

进到目录运行上面这个setup.py脚本

可以发现dist目录下生成了一个hello.exe文件和另外几个dll文件

双击运行,出现窗口

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值