Python项目打包为exe教程

简介: Python项目打包为exe教程

前言

 

  • 对于python为什么要打包成exe文件,是因为传输源文件以及源代码给他人是需要配置好一定的环境才能进行编译操作,而打包成exe文件就可以跟电脑软件一样打开就可以运行也可以分享给他人。但是打包好的exe文件并不是很方便去拆包,所以在打包前一定要测试之后在打包发布。
  • 版本控制方面尽量选择python3.6+32位版本,因为win64位系统向下兼容32位程序,如果不考虑32位系统的话无所谓,直接python64位版本直接打包就可以,但是只能在win64位系统运行。好了下面我将从安装pyinstaller开始介绍,然后是打包教程,最后是命令解释。


    准备工作

 

pipenv简介

 

过去我们一般用 virtualenv搭建虚拟环境,管理python版本,用 pip进行包的管理。在虚拟环境激活状态下,可以安装所需的依赖包,安装的依赖包会保存至项目虚拟环境目录下,不会污染系统全局环境

virtualenv的使用存在一定的问题:

  • 由于跨平台的使用不太一致,有时候处理包之间的依赖总存在问题。
  • 可能需要手动安装/删除某些特定版本的包
  • 存在多个环境(开发环境、测试环境、生产环境)时,依赖包目录文件requirements.txt 会需要存在多个,无比繁琐
  • 要定期更新 requirements.txt,保持项目环境的一致性

pipenv能够有效管理Python多个环境,各种包,相当于 virtualenv 和 pip 的合体,且更加强大。

pipenv主要有以下特性:

  • pipenv集成了pipvirtualenv两者的功能,且完善了两者的一些缺陷。
  • pipenv会在项目目录下创建 Pipfile Pipfile.lock 文件,管理包之间的依赖关系。
    virtualenv需要将虚拟环境依赖包的导出为requirements.txt, 一旦依赖包变动,就要重新导出,现在PipfilePipfile.lock文件可以节省这些步骤,更方便地管理,查看依赖关系是十分方便。
  • 各个地方使用了哈希校验,无论安装还是卸载包都十分安全,且会自动公开安全漏洞。。
  • 通过加载 .env文件简化开发工作流程。
  • 便于docker容器化管理Pipfile文件支持生成 requirements文件,便于项目代码docker化管理,另外,pipfile还支持v–dev环境,可以在调试阶段安装许多调试工具等,而不影响生产环境的环境。
  • 无需激活虚拟环境执行代码,只要有pipfile文件即可使用虚拟环境的依赖包执行python脚本,如:通过执行命令 pipenv run python xx.py
  • 支持Python2 和 Python3,在各个平台的命令都是一样的。

 

1

安装pipenv

 

pip install pipenv


 

2

检查是否安装成功

 

pipenv --version


能看到版本号,说明安装成功。


 

 


pyinstaller简介


PyInstaller 是一个在 Windows、GNU/Linux、macOS、FreeBSDOpenBSDSolarisAIX 下将 Python 程序冻结(打包)为独立可执行文件的程序。与类似工具相比,它的主要优点是 PyInstaller 与 Python 3.7-3.10 一起工作,由于透明压缩,它构建了更小的可执行文件,它是完全多平台的,并使用操作系统支持加载动态库,从而确保完全兼容。 [2


 


pyinstaller命令参数详解


 



进入pipenv虚拟环境

 

pipenv shell


如下图所示,虚拟环境创建成功:





安装项目所需依赖包





pip install lxml
pip install requests
pip install bs4



最后在安装pyinstaller,因为我们这个是虚拟环境,所以需要在虚拟环境内安装pyinstaller包


pip install pyinstaller


安装完pyinstaller后再次使用pyinstaller命令打包我们的Python项目即可。


pyinstaller -w -i 图标.ico  -F xxx.py


ps:-w 代表取出终端窗口,-i 表示设置程序显示 图标,-F 表示需要打包的xxx.py文件


如图所示,出现 complateed successfullly 说明打包成功。


然后再使用如下命令清理留在c盘的环境,避免占用磁盘存储空间


pipenv --rm



打包好的exe在项目的dist目录下,可以看到占用大小还是很小的~


相关文章
|
6天前
|
BI Python
SciPy 教程 之 Scipy 显著性检验 8
本教程介绍SciPy中显著性检验的应用,包括如何利用scipy.stats模块进行显著性检验,以判断样本与总体假设间的差异是否显著。通过示例代码展示了如何使用describe()函数获取数组的统计描述信息,如观测次数、最小最大值、均值、方差等。
16 1
|
7天前
|
Python
SciPy 教程 之 Scipy 显著性检验 6
显著性检验是统计学中用于判断样本与总体假设间是否存在显著差异的方法。SciPy的scipy.stats模块提供了执行显著性检验的工具,如T检验,用于比较两组数据的均值是否来自同一分布。通过ttest_ind()函数,可以获取两样本的t统计量和p值,进而判断差异是否显著。示例代码展示了如何使用该函数进行T检验并输出结果。
11 1
|
9天前
|
Python
SciPy 教程 之 Scipy 显著性检验 3
本教程介绍Scipy显著性检验,包括其基本概念、原理及应用。显著性检验用于判断样本与总体假设间的差异是否显著,是统计学中的重要工具。Scipy通过`scipy.stats`模块提供了相关功能,支持双边检验等方法。
18 1
|
9天前
|
Python
SciPy 教程 之 Scipy 显著性检验 5
显著性检验用于判断样本与总体假设间的差异是否由随机变异引起,或是假设与真实情况不符所致。SciPy通过scipy.stats模块提供显著性检验功能,P值用于衡量数据接近极端程度,与alpha值对比以决定统计显著性。
13 0
|
10天前
|
机器学习/深度学习 数据处理 Python
SciPy 教程 之 SciPy 插值 3
本教程介绍了SciPy中的插值方法,包括什么是插值及其在数据处理和机器学习中的应用。通过 `scipy.interpolate` 模块,特别是 `Rbf()` 函数,展示了如何实现径向基函数插值,以平滑数据集中的离散点。示例代码演示了如何使用 `Rbf()` 函数进行插值计算。
17 0
|
安全 Java Python
sonarqube扫描Python项目代码
sonarqube扫描Python项目代码
sonarqube扫描Python项目代码
|
5月前
|
算法 程序员 开发工具
GitHub上新!14个Python项目详细教程(附完整代码)
Python作为程序员的宠儿,越来越得到人们的关注,使用Python进行应用程序开发的也越来越多。 今天给小伙伴们分享的这份项目教程完整代码已上传至GitHub,你可以选择跟着这份教程一段一段的手敲出来这几个项目,也可以直接从GitHub上copy下来。
|
6月前
|
机器学习/深度学习 数据采集 数据可视化
Python众筹项目结果预测:优化后的随机森林分类器可视化|数据代码分享
Python众筹项目结果预测:优化后的随机森林分类器可视化|数据代码分享
|
6月前
|
算法 程序员 开发工具
GitHub上新!14个Python项目详细教程(附完整代码)
Python作为程序员的宠儿,越来越得到人们的关注,使用Python进行应用程序开发的也越来越多。 今天给小伙伴们分享的这份项目教程完整代码已上传至GitHub,你可以选择跟着这份教程一段一段的手敲出来这几个项目,也可以直接从GitHub上copy下来。
|
存储 JSON NoSQL
Python | Python学习之常用项目代码(一)
Python | Python学习之常用项目代码(一)
下一篇
无影云桌面