python将代码打包为可执行文件exe

        之前在公司有开发过几款小工具给小伙伴使用,考虑到其他同事电脑上不一定安装了python环境,就将脚本代码打包成exe可执行文件,用户只需要双击即可打开使用工具,无需额外安装各种依赖,十分方便友好。

图1-1

现将打包方法介绍如下:

        1.安装pyinstaller库: pip  install pyinstaller

        2.进入到脚本程序所在目录,执行打包命令:pyinstaller -F -w find_pcf_file.py   

(find_pcf_file.p为程序脚本名称)

图2-1

        3.等待打包完成

图3-1

        4.进入到脚本同级目录下的dist目录,找到打包后的exe文件即可

图4-1

备注:如果脚本只是单纯的后台程序,无需交互,则不会有图1-1显示的可视化界面,如需要进行交互,可参考如下代码:

if__name__=="__main__":
    root=Tk()
    var_date=StringVar()
    var_path=StringVar()
    root.title('PCF文件自动采集工具V1.0')
    sw=root.winfo_screenwidth()
    sh=root.winfo_screenheight()
    ww=710
    wh=430
    x=(sw-ww)/2
    y=(sh-wh)/2
    root.geometry("%dx%d+%d+%d"%(ww,wh,x,y))
    Label(root,text=r"使用说明:").grid(row=1,column=0,sticky=W,columnspan=1)
    Label(root,text=r"1.输入日期范围,格式:yyyymmdd,yyyymmdd").grid(row=2,column=0,sticky=W,columnspan=1)
    Label(root,text=r"2.点击采集文件按钮").grid(row=3,column=0,sticky=W,columnspan=1)
    Label(root,text=r"3.有任何建议及问题请联系:段小王    爷").grid(row=4,column=0,sticky=W,columnspan=1)
    Label(root,text=r"输入需要采集的日期范围:").grid(row=5,column=0,sticky=W,columnspan=1)
    Label(root,text=r"文件存放路径:").grid(row=6,column=0,sticky=W,columnspan=1)
    #输入日期范围
    enter_date=Entry(root,show=None,textvariable=var_date,font=('Arial',9))
    enter_date.grid(row=5,column=1,columnspan=2)
    #enter_date.place(width=350)
    #输入选择文件路径
    enter_path=Entry(root,show=None,textvariable=var_path,font=('Arial',9))
    enter_path.grid(row=6,column=2,columnspan=4)
    
    #收集文件按钮
    btn_change=Button(root,text='收集文件',bg="Gray",command=copy_file) # copy_file方法是需求的具体实现方法
    btn_change.grid(row=7,column=2)

    root.mainloop()

补充:

在使用pyinstaller对python程序进行打包后,若打包的主程序中调用自编模块(有时第三方模块也会出现同样问题),运行exe文件出现模块找不到的问题 打开exe文件后输出以下报错: ModuleNotFoundError: No module named ‘xxxxxxx’

解决方案: pyinstaller -F 测试.py  -p  .\venv\Lib\site-packages

  • 脚本引用的模块存放在工程下的\venv\Lib\site-packages目录

  • -F:直接生成单独的exe文件,不附带各种依赖文件。

  • -p:后面紧跟着你要指定的模块搜索路径,如果你的模块安装的路径没有被PyInstaller自动检索到,自己指定即可。

重新生成exe文件后,运行即可,问题解决!

猜你喜欢

转载自blog.csdn.net/weixin_46361114/article/details/127042509