[python]2.将项目制作成exe文件(win/Mac),通pyinstaller

pye2e和pyinstaller均支持.py文件到.exe文件的打包。这里主要介绍pyinstaller,没有为什么。
安装:

pip install pyinstaller
  • 支持MAC,win

0. exe打包完整流程

完整流程应该是一个项目对应一个虚拟环境,还有依赖。

  1. 创建虚拟环境
  2. 完成本地开发
  3. 导出依赖
    pip freeze > requirements.txt
  4. 到新环境安装依赖
    pip install -r requirements.txt
  5. 用pyinstaller打包
    具体打包见下文

1. 打简单的单文件

如果要自定义应用程序名加参数-n 文件名即可

1.1 生成文件夹

含exe,执行:

pyinstaller -D hello.py -n hello

最终同helllo.py目录下生成:

/build文件夹:编译中间文件
/dist文件夹:打包结果,可以压缩dist然后发给别人
/hello.spec:打包过程中的配置文件

1.2 生成多文件

只有exe文件

pyinstaller -F hello.py -n hello

输出只有一个/dist/下的一个exe文件。
说明:这个程序在执行的时候,会自动解压很多需要的文件和依赖,会在系统的一个临时路径下执行。因此如果有用到其他文件或者读取其他文件的话请:参考

2.路径问题

打包项目中需要用到其他文件,请参考

3. 模块依赖问题(手动指定打包)

模块依赖有如下几种情况:

  1. exec.py 依赖A.py
  2. exec.py 依赖A.py A.py依赖B.py
    这两种情况都是可以自动解决的。
    这种情况不会自动导入包:
    动态导入包的情况例如使用了importlib,就不会自动导包,所以要手动指定需要打包的文件。

3.1 解决方法

此时我们就用到了上一步生成的hello.spec文件(即使它报错了),找到这一行hiddenimports=[],在这里手动加入需要打包的文件(data/a.py)

hiddenimports = [
	"data.a"
]

然后打包命令也要相应改变,如下:

pyinstaller -F hello.spec

4. 细节问题

4.1 exe显示/不显示报错信息

  1. 双击程序,如果有错直接闪退
  2. 在终端执行,如果有错会有报错信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值