用 Pyinstaller 模块将 Python 程序打包成 exe 文件(全网最全面最详细)(一)

简介: 用 Pyinstaller 模块将 Python 程序打包成 exe 文件(全网最全面最详细)(一)

打包前置知识

一、什么是exe可执行文件?

exe 文件英文全名是 executable file,翻译为可执行文件(但它不等于可执行文件),可执行文件包含两种,文件扩展名为 .exe 的是其中的一种。正确的 exe 文件可以在 Windows 平台上直接双击运行!我们通常用的各种软件都是通过快捷方式打开的,而这个快捷方式的目标地址就是这个软件的一个 exe 文件。

二、为什么要将 Python 程序打包为 exe 可执行文件?

  众所周知,Python 程序的运行必须要有 Python 的环境,但是程序编出来是用的,如果是给别人用,而他/她的电脑上又没有 Python 程序运行的环境怎么办呢?总不能让他/她去安装一个吧?这时我们就要将 Python 程序打包为 exe 文件。这样,在 Windows 平台下,就可以直接运行该程序,不论有没有 Python 环境。

三、为什么 Python 程序不能直接运行呢?

    Python 是解释性语言,它与 C 或者 C++ 等编译型语言不同,C 或者 C++ 都是要编译再运行的,(编译产生的最终文件就是 exe 文件),Python 本质上只是对一段文本进行解释,类似于浏览器解析 html 文档,是不会产生任何 exe 文件的。

四、我们用什么来打包 Python 文件呢?

  一般我们都用 Python 的 Pyinstaller 模块进行打包,也有其他的打包模块,不过相比之下,Pyinstaller 的使用者最多,用起来也很简单,因此本文章就以 Pyinstaller 模块来打包 Python 程序。

五、打包有哪几种分类呢?

根据需要,下面的方法大家可以任选一种进行打包(我一般用第 3 个),不过新手的话建议全部都看一下哦。


① 一般的打包


步骤最少,操作最简单,但是打包时间久,效果不理想(打包后文件太大,一般 100MB 以上)


② 虚拟环境下的打包


步骤稍多,操作略微复杂,但是打包快,效果好(打包后文件不大,一般 10MB 以内)


③ 多 Python 文件的打包


步骤更多,操作更复杂,但是可以将多个 Python 文件都打包进去


④ 包含资源文件的打包


步骤极为繁琐,操作非常复杂,但是可以把所有的文件都包含进去

打包的方法

一般的打包

一般的打包方式,最简单,但是打包的成品有些许臃肿,不是特别推荐。

1、打开 Anaconda Prompt

如果你安装了 Anaconda 的 Python 集成环境的话,在菜单页面的所有应用里面可以看到 Anaconda 以及 Anaconda Prompt。

Anaconda

点进去就可以看见如下的界面:

Anaconda Prompt

2、下载并安装 Pyinstaller 模块

这个用 pip 模块直接下载就行,直接就下载在本次需要打包的 Python 环境下(base 环境)

pip install Pyinstaller

                                                  pip insatll Pyinstaller

当然了,已经安装过 Pyinstaller 模块的可以跳过这一步。

如果出现什么疑难杂症,大概率是权限导致的问题,按照下面的方法重新打开 Anaconda Prompt 就好了。

                                                     管理员身份打开

此时,Anaconda Prompt 的显示文字会变成如下这样:

然后再 pip 就行,这样应该就没有什么问题了。

3、切换命令行的路径管理员身份运行

因为你要打包的文件在对应的文件夹里面,而 Pyinsatller 一开始是不知道要打包的文件在哪里的,所以要直接切换命令行的路径到目标文件夹路径,使得后面的步骤中,Pyinstaller 可以找到对应的文件。

cd 文件夹路径

这里我的打包文件夹放在了桌面上,文件夹名为 test,要打包的 Python 文件在 test 文件夹内,名为 Python.py 。于是我的文件夹路径为 C:\Users\小康\Desktop\test(一定要是绝对路径)。

切换路径然后回车就可以看到下面这样的就说明成功了。

切换路径

4、打包 Python 文件

输入如下格式的命令即可

Pyinstaller -option1 -option2 -... 要打包的文件

参数选项比较多,这里我列一个表:image.pngimage.png这里简单地举几个例子,让大家明白这个参数怎么写。

# 这一般是用来打包界面化的程序的,如用tkinter、Pyqt5等制作的程序。
# -w 的意思就是exe运行的时候不弹出那个命令行(黑窗口)
Pyinstaller -F -w somefile.py
# 这一般用来添加exe的图标
Pyinstaller -F -i someicon.ico somefile.py

打包文件

然后回车它就会自动打包了。说明一下,一般我们都只会选择其中的几个参数选项,如 -F 和 -w,根据需要,我们还会选择其他的一些参数。当出现如下的文字(主要是最后一行文字)时就代表打包成功了!c72a6c2794f144be97b2af58af7ffc64.png

目录
相关文章
|
8天前
|
Python
在Python中,可以使用内置的`re`模块来处理正则表达式
在Python中,可以使用内置的`re`模块来处理正则表达式
20 5
|
18天前
|
Java 程序员 开发者
Python的gc模块
Python的gc模块
|
21天前
|
数据采集 Web App开发 JavaScript
python-selenium模块详解!!!
Selenium 是一个强大的自动化测试工具,支持 Python 调用浏览器进行网页抓取。本文介绍了 Selenium 的安装、基本使用、元素定位、高级操作等内容。主要内容包括:发送请求、加载网页、元素定位、处理 Cookie、无头浏览器设置、页面等待、窗口和 iframe 切换等。通过示例代码帮助读者快速掌握 Selenium 的核心功能。
62 5
|
19天前
|
Python
SciPy 教程 之 SciPy 模块列表 16
SciPy教程之SciPy模块列表16 - 单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了力学单位的使用,如牛顿、磅力和千克力等。
15 0
|
20天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy 教程之 SciPy 模块列表 15 - 功率单位。常量模块包含多种单位,如公制、质量、时间等。功率单位中,1 瓦特定义为 1 焦耳/秒,表示每秒转换或耗散的能量速率。示例代码展示了如何使用 `constants` 模块获取马力值(745.6998715822701)。
15 0
|
20天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy教程之SciPy模块列表15:单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。功率单位以瓦特(W)表示,1W=1J/s。示例代码展示了如何使用`constants`模块获取马力(hp)的值,结果为745.6998715822701。
16 0
|
21天前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy 教程之 SciPy 模块列表 13 - 单位类型。常量模块包含多种单位:公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例:`constants.zero_Celsius` 返回 273.15 开尔文,`constants.degree_Fahrenheit` 返回 0.5555555555555556。
14 0
|
6月前
|
Python
使用PyInstaller将Python应用程序打包成EXE文件
使用PyInstaller将Python应用程序打包成EXE文件
817 0
|
JSON 数据格式 Python
用 Pyinstaller 模块将 Python 程序打包成 exe 文件(全网最全面最详细)(三)
用 Pyinstaller 模块将 Python 程序打包成 exe 文件(全网最全面最详细)(三)
249 0
|
IDE 开发工具 Python
用 Pyinstaller 模块将 Python 程序打包成 exe 文件(全网最全面最详细)(二)
用 Pyinstaller 模块将 Python 程序打包成 exe 文件(全网最全面最详细)(二)
762 0