zoukankan      html  css  js  c++  java
  • pyinstaller 模块-python文件生成exe可执行文件

    安装 PyInstaller 模块与安装其他 Python 模块一样,使用 pip 命令安装即可。在命令行输入如下命令:

    pip install pyinstaller

    在 PyInstaller 模块安装成功之后,在 Python 的安装目录下的 Scripts(D:PythonPython36Scripts) 目录下会增加一个 pyinstaller.exe 程序,接下来就可以使用该工具将 Python 程序生成 EXE 程序了。

    pyinstaller 选项 Python 源文件

    不管这个 Python 应用是单文件的应用,还是多文件的应用,只要在使用 pyinstaller 命令时编译作为程序入口的 Python 程序即可。

    PyInstaller工具是跨平台的,它既可以在 Windows平台上使用,也可以在 Mac OS X 平台上运行。在不同的平台上使用 PyInstaller 工具的方法是一样的,它们支持的选项也是一样的。

    表 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 文件
    -p DIR,--path=DIR 设置 Python 导入模块的路径(和设置 PYTHONPATH 环境变量的作用相似)。也可使用路径分隔符(Windows 使用分号,Linux 使用冒号)来分隔多个路径
    -n NAME,--name=NAME 指定项目(产生的 spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字

    在表 1 中列出的只是 PyInstaller 模块所支持的常用选项,如果需要了解 PyInstaller 选项的详细信息,则可通过 pyinstaller -h 来查看。

     

    pyinstaller -F app.py

    执行上面命令,将看到详细的生成过程。当生成完成后,将会在此 app.py 目录下看到多了一个 dist 目录,并在该目录下看到有一个 app.exe 文件,这就是使用 PyInstaller 工具生成的 EXE 程序。

    在命令行窗口中进入 dist 目录下,在该目录可执行 app.exe 


    下面再创建一个带图形用户界面,可以访问 MySQL 数据库的应用程序。

    在 app 当前所在目录再创建一个 dbapp 目录,并在该目录下创建 Python 程序,其中 exec_select.py 程序负责查询数据,main.py 程序负责创建图形用户界面来显示查询结果。

    exec_select.py 文件包含的代码如下:

    1. # 导入访问MySQL的模块
    2. import mysql.connector
    3. def query_db():
    4. # ①、连接数据库
    5. conn = conn = mysql.connector.connect(user='root', password='32147',
    6. host='localhost', port='3306',
    7. database='python', use_unicode=True)
    8. # ②、获取游标
    9. c = conn.cursor()
    10. # ③、调用执行select语句查询数据
    11. c.execute('select * from user_tb where user_id > %s', (2,))
    12. # 通过游标的description属性获取列信息
    13. description = c.description
    14. # 使用fetchall获取游标中的所有结果集
    15. rows = c.fetchall()
    16. # ④、关闭游标
    17. c.close()
    18. # ⑤、关闭连接
    19. conn.close()
    20. return description, rows

    mian.py 文件包含的代码如下:

    1. from exec_select import *
    2. from tkinter import *
    3. def main():
    4. description, rows = query_db()
    5. # 创建窗口
    6. win = Tk()
    7. win.title('数据库查询')
    8. # 通过description获取列信息
    9. for i, col in enumerate(description):
    10. lb = Button(win, text=col[0], padx=50, pady=6)
    11. lb.grid(row=0, column=i)
    12. # 直接使用for循环查询得到的结果集
    13. for i, row in enumerate(rows):
    14. for j in range(len(row)):
    15. en = Label(win, text=row[j])
    16. en.grid(row=i+1, column=j)
    17. win.mainloop()
    18. if __name__ == '__main__':
    19. main()

    通过命令行工具进入 dbapp 目录下,在该目录下执行如下命令:

    Pyinstaller -F -w main.py

    上面命令中的 -F 选项指定生成单个的可执行程序,-w 选项指定生成图形用户界面程序(不需要命令行界面)。运行上面命令,该工具同样在 dbapp 目录下生成了一个 dist 子目录,并在该子目录下生成了一个 main.exe 文件。

    直接双击运行 main.exe 程序(该程序有图形用户界面,因此可以双击运行),读者可自行查看运行结果。

     

    转载:http://c.biancheng.net/view/2690.html

     

     

     

  • 相关阅读:
    序列JSON数据和四种AJAX操作方式
    jquery.validate和jquery.form.js实现表单提交
    JQuery Validate使用总结1:
    HOWTO: Include Base64 Encoded Binary Image Data (data URI scheme) in Inline Cascading Style Sheets (CSS)(转)
    SharePoint 2007 使用4.0 .Net
    动态IP解决方案
    取MS CRM表单的URL
    从Iframe或新开的窗口访问MS CRM 2011(转)
    Toggle or Hidden MS CRM Tab
    Windows 2008下修改域用户密码
  • 原文地址:https://www.cnblogs.com/wsnan/p/11762810.html
Copyright © 2011-2022 走看看