PythonPyInstaller安装和使⽤教程(详解版)
在创建了独⽴应⽤(⾃包含该应⽤的依赖包)之后,还可以使⽤ PyInstaller 将 程序⽣成可直接运⾏的程序,这个程序就可以被分发到对应的 Windows 或 Mac OS X 平台上运⾏。
安装 PyInstalle
Python 默认并不包含 PyInstaller 模块,因此需要⾃⾏安装 PyInstaller 模块。
安装 PyInstaller 模块与安装其他 Python 模块⼀样,使⽤ pip 命令安装即可。在命令⾏输⼊如下命令:
pip install pyinstaller
强烈建议使⽤ pip 在线安装的⽅式来安装 PyInstaller 模块,不要使⽤离线包的⽅式来安装,因为 PyInstaller 模块还依赖其他模块,pip 在安装 PyInstaller 模块时会先安装它的依赖模块。
运⾏上⾯命令,应该看到如下输出结果:
python入门教程appSuccessfully
其中的 x.x.x 代表 PyInstaller 的版本。
在 PyInstaller 模块安装成功之后,在 Python 的安装⽬录下的 Scripts(D:\Python\Python36\Scripts) ⽬录下会增加⼀个 程序,接下来就可以使⽤该⼯具将 Python 程序⽣成 EXE 程序了。
PyInstaller⽣成可执⾏程序
米多客客服软件PyInstaller ⼯具的命令语法如下:
pyinstaller 选项 Python 源⽂件
不管这个 Python 应⽤是单⽂件的应⽤,还是多⽂件的应⽤,只要在使⽤ pyinstaller 命令时编译作为程序⼊⼝的 Python 程序即可。
PyInstaller⼯具是跨平台的,它既可以在 Windows平台上使⽤,也可以在 Mac OS X 平台上运⾏。在不同的平台上使⽤ PyInstaller ⼯具的⽅法是⼀样的,它们⽀持的选项也是⼀样的。
下⾯先创建⼀个 app ⽬录,在该⽬录下创建⼀个 app.py ⽂件,⽂件中包含如下代码:
1. from say_hello import *
2.
3. def main():
4. print('程序开始执⾏')
5. print(say_hello('孙悟空'))
6. # 增加调⽤main()函数
7. if __name__ == '__main__':
8. main()
接下来使⽤命令⾏⼯具进⼊到此 app ⽬录下,执⾏如下命令:
pyinstaller -F app.py
linux系统目前挂载的文件系统查看执⾏上⾯命令,将看到详细的⽣成过程。当⽣成完成后,将会在此 app ⽬录下看到多了⼀个 dist ⽬录,并在该⽬录下看到有⼀个 ⽂件,这就是使⽤ PyInstaller ⼯具⽣成的 EXE 程序。
在命令⾏窗⼝中进⼊ dist ⽬录下,在该⽬录执⾏ ,将会看到该程序⽣成如下输出结果:
程序开始执⾏
孙悟空,您好!
由于该程序没有图形⽤户界⾯,因此如果读者试图通过双击来运⾏该程序,则只能看到程序窗⼝⼀闪就消失了,这样将⽆法看到该程序的输出结果。
在上⾯命令中使⽤了-F 选项,该选项指定⽣成单独的 EXE ⽂件,因此,在 dist ⽬录下⽣成了⼀个单独的⼤约为 6MB 的 ⽂件(在 Mac OS X 平台上⽣成的⽂件就叫 app,没有后缀);与 -F 选项对应的是 -D 选项(默认选项),该选项指定⽣成⼀个⽬录(包含多个⽂件)来作为程序。
下⾯先将 PyInstaller ⼯具在 app ⽬录下⽣成的 build、dist ⽬录删除,并将 app.spec ⽂件也删除,然后使⽤如下命令来⽣成 EXE ⽂件。
pyinstaller -D app.py
执⾏上⾯命令,将看到详细的⽣成过程。当⽣成完成后,将会在 app ⽬录下看到多了⼀个 dist ⽬录,并在该⽬录下看到有⼀个 app ⼦⽬录,在该⼦⽬录下包含了⼤量 .dll ⽂件和 .pyz ⽂件,它们都是 程序的⽀撑⽂件。在命令⾏窗⼝中运⾏该 程序,同样可以看到与前⼀个 程序相同的输出结果。
PyInstaller 不仅⽀持 -F、-D 选项,⽽且也⽀持如表 1 所⽰的常⽤选项。
表 1 PyInstaller ⽀持的常⽤选项
-h,--help查看该模块的帮助信息
-F,-onefile产⽣单个的可执⾏⽂件
-D,--onedir产⽣⼀个⽬录(包含多个⽂件)作为可执⾏程序
-a,--ascii不包含 Unicode 字符集⽀持
-d,--debug产⽣ debug 版本的可执⾏⽂件
-w,--windowed,--
noconsolc
指定程序运⾏时不显⽰命令⾏窗⼝(仅对 Windows 有效)
-c,--nowindowed,--
console
指定使⽤命令⾏窗⼝运⾏程序(仅对 Windows 有效)
-o DIR,--out=DIR指定 spec ⽂件的⽣成⽬录。如果没有指定,则默认使⽤当前⽬录来⽣成 spec ⽂件
slice into-p DIR,--path=DIR 设置 Python 导⼊模块的路径(和设置 PYTHONPATH 环境变量的作⽤相似)。也可使⽤路径分隔符(Windows 使⽤分号,Linux 使⽤冒号)来分隔多个路径
-n NAME,--
name=NAME
指定项⽬(产⽣的 spec)名字。如果省略该选项,那么第⼀个脚本的主⽂件名将作为 spec 的名字
在表 1 中列出的只是 PyInstaller 模块所⽀持的常⽤选项,如果需要了解 PyInstaller 选项的详细信息,则可通过 pyinstaller -h 来查看。下⾯再创建⼀个带图形⽤户界⾯,可以访问 数据库的应⽤程序。
在 app 当前所在⽬录再创建⼀个 dbapp ⽬录,并在该⽬录下创建 Python 程序,其中 exec_select.py 程序负责查询数据,main.py 程序负责创建图形⽤户界⾯来显⽰查询结果。
exec_select.py ⽂件包含的代码如下:
1. # 导⼊访问MySQL的模块
2. tor
3.
4. def query_db():
5. # ①、连接数据库
6. conn = conn = t(user='root', password='32147',
7. host='localhost', port='3306',
8. database='python', use_unicode=True)
unix文件系统的卷资源表9. # ②、获取游标
10. c = conn.cursor()
11. # ③、调⽤执⾏select语句查询数据
12. c.execute('select * from user_tb where user_id > %s', (2,))
13. # 通过游标的description属性获取列信息
14. description = c.description
15. # 使⽤fetchall获取游标中的所有结果集
16. rows = c.fetchall()
17. # ④、关闭游标
18. c.close()
19. # ⑤、关闭连接
20. conn.close()
21. return description, rows
mian.py ⽂件包含的代码如下:
1. from exec_select import *
2. from tkinter import *
3.
4. def main():
5. description, rows = query_db()
6. # 创建窗⼝
7. win = Tk()
8. win.title('数据库查询')
9. # 通过description获取列信息
10. for i, col in enumerate(description):
11. lb = Button(win, text=col[0], padx=50, pady=6)
12. lb.grid(row=0, column=i)
13. # 直接使⽤for循环查询得到的结果集
14. for i, row in enumerate(rows):
15. for j in range(len(row)):
16. en = Label(win, text=row[j])
17. en.grid(row=i+1, column=j)
18. win.mainloop()
19. if __name__ == '__main__':
20. main()
通过命令⾏⼯具进⼊ dbapp ⽬录下,在该⽬录下执⾏如下命令:xml文件乱码怎么解决
Pyinstaller -F -w main.py
上⾯命令中的 -F 选项指定⽣成单个的可执⾏程序,-w 选项指定⽣成图形⽤户界⾯程序(不需要命令⾏界⾯)。运⾏上⾯命令,该⼯具同样在 dbapp ⽬录下⽣成了⼀个 dist ⼦⽬录,并在该⼦⽬录下⽣成了⼀个 ⽂件。
直接双击运⾏ 程序(该程序有图形⽤户界⾯,因此可以双击运⾏),读者可⾃⾏查看运⾏结果。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论