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目录下,可以看到占用大小还是很小的~


相关文章
|
8天前
|
监控 测试技术 Python
颠覆传统!Python闭包与装饰器的高级实战技巧,让你的项目效率翻倍
【7月更文挑战第7天】Python的闭包与装饰器是强大的工具。闭包是能记住外部作用域变量的内部函数,常用于动态函数创建和工厂模式。例如,`make_power`返回含外部变量`n`的`power`闭包。装饰器则允许在不修改函数代码的情况下添加新功能,如日志或性能监控。`my_decorator`函数接收一个函数并返回包装后的函数,添加了前后处理逻辑。掌握这两者,可提升编程效率和灵活性。
17 3
|
9天前
|
数据采集 存储 JSON
Python 数据抓取教程:完结篇
Python 数据抓取教程:完结篇
21 1
|
6天前
|
运维 数据安全/隐私保护 Python
Python基于telnetlib模块实现交换机全面巡检自动化运维项目
Python基于telnetlib模块实现交换机全面巡检自动化运维项目
40 14
|
10天前
|
数据采集 机器学习/深度学习 数据可视化
关于Python数据分析项目的简要概述:从CSV加载数据,执行数据预处理,进行数据探索,选择线性回归模型进行训练,评估模型性能并优化,最后结果解释与可视化。
【7月更文挑战第5天】这是一个关于Python数据分析项目的简要概述:从CSV加载数据,执行数据预处理(填充缺失值,处理异常值),进行数据探索(可视化和统计分析),选择线性回归模型进行训练,评估模型性能并优化,最后结果解释与可视化。此案例展示了数据科学的典型流程。
31 2
|
2天前
|
存储 开发者 网络架构
在Python中,`setuptools`是一个强大的工具,用于帮助开发者打包和分发他们的Python代码库。
在Python中,`setuptools`是一个强大的工具,用于帮助开发者打包和分发他们的Python代码库。
5 0
|
11天前
|
Python
Python 中 decimal 模块的用法教程
Python 中 decimal 模块的用法教程
9 0
|
11天前
|
Python Windows
怎么将 Python 项目打包成 exe?
这篇内容是一个关于使用Python和相关工具创建GUI应用并打包成Windows安装程序的教程摘要: - **环境**:Python 3.8,Tkinter(内置GUI库),PyInstaller 6.3.0,Inno Setup Compiler(用于创建安装包)。 - **基本流程**:在conda环境中创建一个独立的虚拟环境,编写一个使用Tkinter的GUI应用,添加图标,用PyInstaller将应用打包成单个可执行文件(exe),最后用Inno Setup Compiler将exe和相关文件打包成安装程序。
|
安全 Java Python
sonarqube扫描Python项目代码
sonarqube扫描Python项目代码
sonarqube扫描Python项目代码
|
1月前
|
算法 程序员 开发工具
GitHub上新!14个Python项目详细教程(附完整代码)
Python作为程序员的宠儿,越来越得到人们的关注,使用Python进行应用程序开发的也越来越多。 今天给小伙伴们分享的这份项目教程完整代码已上传至GitHub,你可以选择跟着这份教程一段一段的手敲出来这几个项目,也可以直接从GitHub上copy下来。
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
Python众筹项目结果预测:优化后的随机森林分类器可视化|数据代码分享
Python众筹项目结果预测:优化后的随机森林分类器可视化|数据代码分享