还不会打包Python程序?pyinstaller了解一下

简介: 对于专业的python程序员来说,python打包工具或许用得并不多。但是对于非专业人士来说,你给他写个python项目,要让他安装python、安装依赖等等,估计人都会抓狂。或者说,如果你不想暴露自己的项目代码,python打包工具就派上用场了,市面上有多种打包工具,这里就讲讲最常用的pyinstaller的使用方法吧。

前言

对于专业的python程序员来说,python打包工具或许用得并不多。但是对于非专业人士来说,你给他写个python项目,要让他安装python、安装依赖等等,估计人都会抓狂。或者说,如果你不想暴露自己的项目代码,python打包工具就派上用场了,市面上有多种打包工具,这里就讲讲最常用的pyinstaller的使用方法吧。


pyinstaller简介

pyinstaller是一个python打包工具,它将python程序及所需依赖都打包成一个可执行文件。


说详细点就是:输入指定的python脚本,pyinstaller首先会分析脚本所依赖的其他脚本,查找后将所有脚本收集起来(包括python解释器),最后将这些文件放到一个目录下,或者是打包到一个可执行文件中。打包后我们只需要执行可执行文件即可,无需再安装繁杂的python环境。


需要注意的是,pyinstaller不是交叉编译器。就是说如果你要将python程序打包成一个能在windows运行的文件,那么你只能在windows上使用pyinstaller来完成打包过程,而不能在其他系统如linux、macos上打包。


pyinstaller下载

首先,因pyinstaller支持python的版本需>=3.7,所以我们要确保在python3.7或更新的版本上使用。


安装:

pip install pyinstaller


下载完成后,运行`pyinstaller -h`,显示如下则安装成功。

image.png


pyinstaller使用

准备好程序代码

这里以一个简单的python程序为例,新建一个a.py文件,内容如下:

importfiredefprint_msg(msg):
print("print here:", msg)
if__name__=="__main__":
fire.Fire(print_msg)

打包程序

常用到的命令:

image.png


这里使用第一种方式来生成文件,执行`pyinstaller -F a.py`


执行后,我们可在当前目录下看到多了几个文件/目录,分别是a.spec、build目录、dist目录。

- .spec文件:记录的是打包参数等信息,也可以预先准备好spec文件直接打包。

- build目录:记录的是打包所产生的文件,我们可忽略。

- dist目录:放的是可执行文件及依赖,例子中dist目录下的a文件就是可执行文件。

$ lsa.py a.spec build/ dist/


$ ls dist
a


运行一下试试:./dist/a 你好

$ ./dist/a 你好
print here: 你好

结果如预期,打包就完成了。接下来我们将dist目录给到需要的人就行了。



小结

这里简单介绍了pyinstaller的使用方法,在我们需要打包python程序的时候,pyinstaller是不二之选。特别需要注意的是,pyinstaller不能跨系统使用哦。

















相关文章
|
9天前
|
机器学习/深度学习 算法 编译器
Python程序到计算图一键转化,详解清华开源深度学习编译器MagPy
【10月更文挑战第26天】MagPy是一款由清华大学研发的开源深度学习编译器,可将Python程序一键转化为计算图,简化模型构建和优化过程。它支持多种深度学习框架,具备自动化、灵活性、优化性能好和易于扩展等特点,适用于模型构建、迁移、部署及教学研究。尽管MagPy具有诸多优势,但在算子支持、优化策略等方面仍面临挑战。
25 3
|
11天前
|
算法 测试技术 开发者
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗;代码审查通过检查源代码发现潜在问题,提高代码质量和团队协作效率。本文介绍了一些实用的技巧和工具,帮助开发者提升开发效率。
15 3
|
14天前
|
存储 人工智能 数据挖掘
Python编程入门:构建你的第一个程序
【10月更文挑战第22天】编程,这个听起来高深莫测的词汇,实际上就像搭积木一样简单有趣。本文将带你走进Python的世界,用最浅显的语言和实例,让你轻松掌握编写第一个Python程序的方法。无论你是编程新手还是希望了解Python的爱好者,这篇文章都将是你的理想起点。让我们一起开始这段奇妙的编程之旅吧!
18 3
|
4天前
|
存储 机器学习/深度学习 搜索推荐
Python编程入门:从零开始构建你的第一个程序
【10月更文挑战第32天】本文旨在通过浅显易懂的方式引导编程新手进入Python的世界。我们将一起探索Python的基础语法,并通过实例学习如何构建一个简单的程序。文章将不直接展示代码,而是鼓励读者在阅读过程中自行尝试编写,以加深理解和记忆。无论你是编程初学者还是希望巩固基础知识的开发者,这篇文章都将是你的良师益友。让我们开始吧!
|
27天前
|
XML JSON Ubuntu
Python实用记录(十五):PyQt/PySide6打包成exe,精简版(nuitka/pyinstaller/auto-py-to-exe)
本文介绍了使用Nuitka、PyInstaller和auto-py-to-exe三种工具将Python的PyQt/PySide6应用打包成exe文件的方法。提供了详细的安装步骤、打包命令和参数说明,适合新手学习和实践。
258 0
|
28天前
|
存储 开发者 Python
Python编程入门:构建你的第一个程序
【10月更文挑战第8天】本文旨在为初学者提供一个简单的Python编程入门指南。我们将从安装Python环境开始,逐步介绍如何编写、运行和理解一个简单的Python程序。文章将通过一个实际的代码示例来展示Python的基本语法和结构,帮助读者快速上手Python编程。
|
开发工具 git 索引
Python打包系统简单入门
最近把pyenv、pipenv这种都研究了一下,然后我发现一个严重的问题:就是我虽然看了半天这些工具,但是我对Python自己的打包系统却完全没有了解。所以这篇文章就来研究一下Python自带的打包系统。
1470 0
|
2天前
|
Python
不容错过!Python中图的精妙表示与高效遍历策略,提升你的编程艺术感
本文介绍了Python中图的表示方法及遍历策略。图可通过邻接表或邻接矩阵表示,前者节省空间适合稀疏图,后者便于检查连接但占用更多空间。文章详细展示了邻接表和邻接矩阵的实现,并讲解了深度优先搜索(DFS)和广度优先搜索(BFS)的遍历方法,帮助读者掌握图的基本操作和应用技巧。
14 4
|
2天前
|
设计模式 程序员 数据处理
编程之旅:探索Python中的装饰器
【10月更文挑战第34天】在编程的海洋中,Python这艘航船以其简洁优雅著称。其中,装饰器作为一项高级特性,如同船上的风帆,让代码更加灵活和强大。本文将带你领略装饰器的奥秘,从基础概念到实际应用,一起感受编程之美。
|
4天前
|
存储 人工智能 数据挖掘
从零起步,揭秘Python编程如何带你从新手村迈向高手殿堂
【10月更文挑战第32天】Python,诞生于1991年的高级编程语言,以其简洁明了的语法成为众多程序员的入门首选。从基础的变量类型、控制流到列表、字典等数据结构,再到函数定义与调用及面向对象编程,Python提供了丰富的功能和强大的库支持,适用于Web开发、数据分析、人工智能等多个领域。学习Python不仅是掌握一门语言,更是加入一个充满活力的技术社区,开启探索未知世界的旅程。
15 5
下一篇
无影云桌面