欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

01.如何把.py文件打包成为exe,重点讲解pyinstaller的用法

程序员文章站 2022-05-29 13:30:29
1.应用场景 1.1 故事背景 我自己用python写了一个小程序发给其他同事用,给他的就是一个.py文件,不过他觉得比较麻烦,还要安装环境,他问我有没有简单一点的方式,我给一个exe文件,他就不用安装环境就可以运行我的程序,我内心在想这么麻烦,还要我跟你打包成为exe,不过没办法,谁叫是好朋友了, ......

1.应用场景

1.1 故事背景

我自己用python写了一个小程序发给其他同事用,给他的就是一个.py文件,不过他觉得比较麻烦,还要安装环境,他问我有没有简单一点的方式,我给一个exe文件,他就不用安装环境就可以运行我的程序,我内心在想这么麻烦,还要我跟你打包成为exe,不过没办法,谁叫是好朋友了,我就答应他了。

1.2 寻找资料

在写c#的时候,面向nuget编程(谁叫四渣渣程序员了);在学习python之前就之前有很多组件(开心的飞起),开始在github和google上寻找资源,最终发现以下几个东西

  • pyinstaller:将 python 程序转换成独立的执行文件(跨平台)。
  • dh-virtualenv:构建并将 virtualenv 虚拟环境作为一个 debian 包来发布。
  • nuitka:将脚本、模块、包编译成可执行文件或扩展模块。
  • py2app:将 python 脚本变为独立软件包(mac os x)。
  • py2exe:将 python 脚本变为独立软件包(windows)。
  • pynsist:一个用来创建 windows 安装程序的工具,可以在安装程序中打包 python 本身。

1.3 技术方案

通过对比,最终选择了上面例子中的 pyinstaller

1.4 pyinstaller 使用教程整理

  1. 直接在命令行用pip安装 pyinstaller【第一次需要安装成功后,后面就不需要再安装了】
pip install pyinstaller

01.如何把.py文件打包成为exe,重点讲解pyinstaller的用法

  1. 在命令行中切换到要打包的程序所在目录,直接输入下面的指令即可
pyinstaller learn01.py -f

01.如何把.py文件打包成为exe,重点讲解pyinstaller的用法

pyinstaller参数 含义
-f 指定打包后只生成一个exe格式的文件
-d –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)
-c –console, –nowindowed 使用控制台,*面(默认)
-w –windowed, –noconsole 使用窗口,无控制台
-p 添加搜索路径,让其找到对应的库。
-i 改变生成程序的icon图标
-h pyinstaller各个参数的讲解

1.5 关于 pyinstaller 使用总结

在用 pyinstaller 打包成exe后,点击运行,发现直接闪退,有点懵逼,猜想肯定是自己的使用方式不对,后来也去google上搜索了,发现也有人也在搜索 pyinstaller 打包exe后闪退的相关问题,按照教程尝试了好几篇,找了好几天一直没有理想的答案,发现还是闪退。既然没找到答案,那么我就去youtube上找个播放次数比较多的教程看看,看看别个怎么用法,最终大神的教程中找到了解决办法,在代码最后面加上相关代码就行,我整理了一下三种做法:

# 1.暂停的第一种方式
# time.sleep(10)

# 2.暂停的第二种方式
# input("press <enter>")

# 3.暂停的第三种方式 (比较推荐这个)
# 提示使用之前,记得引入相关组件 import os
os.system("pause")

看到以上的做法,突然想起来了在c#中写控制台的场景,最后都会加一句一下代码(如果不加,那就直接退出控制台了,看不到运行后的控制台返回的参数:

console.read();

1.6 相关参考教程