将py文件打包成exe可执行文件

发布于:2022-11-28 ⋅ 阅读:(583) ⋅ 点赞:(0)

使用命令直接打包(不推荐)

基础命令为:pyinstaller hw.py --noconsole --hidden-import PySide2.QtXml
将hw.py换成你要打包的py文件,如果需要附加命令(如加图标或者附加文件等),可以去网上寻觅。
不推荐理由:需要记住命令内容,并需要注意不要打错,比较麻烦。

使用auto-py-to-exe打包工具(推荐)

此工具基于命令,以图形界面显示,比较好上手。Python2.7以上可用。

1)下载安装

用命令窗口安装:
pip install auto-py-to-exe
或者借用ide(pycharm),在python packages中进行安装。

2) 打开工具

打开cmd,输入auto-py-to-exe,即可打开工具。
在这里插入图片描述

  • 脚本位置(必选):添加需要打包的py文件(主文件,附加文件将会在后面添加)
  • 单文件(必选):选择打包后是一个包含很多文件的目录(其中包含exe),还是仅一个exe文件。
    区别在于,当有附加文件时,单目录打包可以直接附加(或者在打包后将附加文件手动添加至文件中),exe程序可正常运行,无需修改主程序代码;单文件则需要修改主程序代码,并在打包时添加附加文件。(具体操作见后面)
  • 控制台窗口(必选):选择当双击打开exe程序,是否先打开命令窗口。一般正式程序发布会隐藏命令窗口,在调试期间可显示,便于找bug。
  • 图标(可选):添加exe程序图标,必须为.icon格式(图片可在网上进行转换)。
  • 附加文件(可选):如有附加文件且选择单文件打包,在打包前需修改代码。主程序的有关附加文件的路径代码如下:
    添加一函数
#路径配置(便于auto-py-to-exe工具的打包)
def resource_path(relative_path):
    """ Get absolute path to resource, works for dev and for PyInstaller """
    base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))
    return os.path.join(base_path, relative_path)

在需要引用路径的代码中将 文件 替换为 resource_path(“./文件”)。./为根目录,路径需要与打包时添加附件填写的路径保持一致。

self.ui = QUiLoader().load(resource_path("./hw_new.ui"))

进入工具添加附加文件,如果是整个目录需要附加也可以选择目录。路径默认为根路径,可以自己添加文件夹更换路径,需要注意的是,此路径需要与主程序中的路径保持一致。

  • 高级(可选):一般用不到,我也没研究,暂且空着,后期了解后补上。
  • 设置(可选):可以选择打包好后的输出路径,也可默认。其余没用到,暂且不写。

3)将py文件打包成exe文件

打开工具,添加py文件,按照需求进行配置,点击“将.py转化成.exe”,转化完成后,可点击查看打开exe程序当前所在文件夹。

4)关于exe运行版本问题

根据运行环境中不同的系统版本寻找对应版本的python,可在一台电脑上安装多个版本的python,需要哪个版本将环境变量换成该路径即可(打开cmd,输入python -V检验一下当前版本是否为想要的)。
例如:想在win7 64位下运行exe程序,需要先从网上下载python3.8.2(其他版本只要是适用win7即可),配置环境变量后打开工具,根据需要进行配置,点击转换。
转换完成后,可能无法在当前电脑打开(因为你电脑有可能不是win7),需要将程序复制粘贴至win7系统下进行点击查看。因此建议先在当前常用电脑进行调试,调试成功后再更换python版本进行正式程序的发布。

我目前也是小白一枚,如果有写的不对的地方,欢迎指正~
也欢迎大家来讨论~

本文含有隐藏内容,请 开通VIP 后查看