python打包部署工具PyInstaller使用填坑记

PyInstaller是一个功能强大的Python打包工具,它能够将Python程序及其所有依赖项打包成独立的可执行文件。以下是对PyInstaller的详细介绍:

工作原理:

  • 分析脚本:PyInstaller会分析Python脚本,识别出脚本中所引用的库和资源文件。
  • 创建打包规范:根据分析结果,PyInstaller会生成一个打包规范文件,其中包含了脚本的依赖关系、资源文件等信息。
  • 打包依赖库:PyInstaller会将脚本所依赖的库文件进行打包,这些库文件会被嵌入到可执行文件中。
  • 生成可执行文件:根据打包规范和打包的依赖库,PyInstaller会生成一个独立的可执行文件,该文件包含了Python解释器、脚本代码和依赖的库文件。
  • 运行可执行文件:生成的可执行文件可以在其他机器上直接运行,无需安装Python解释器和相关库。

常见问题及解决方案:

  • 打包后的程序启动慢:当使用PyInstaller打包应用时,可能会发现生成的可执行文件启动比较慢。这是因为所有的依赖都被打包到了一个文件中,程序在启动时需要解压这些内容。解决方案是使用–onedir(默认选项)而不是–onefile,这样可以让程序快速启动,因为依赖项保持解压状态。
  • 缺失库或模块:有时候,PyInstaller可能无法正确识别程序所依赖的所有库,尤其是当依赖项以动态方式导入时(例如使用__import__函数)。解决方案是在spec文件中手动添加这些缺失的模块。
  • 打包后的文件体积过大:PyInstaller打包的可执行文件可能会包含很多不必要的库,导致文件体积变大。解决方案是使用–exclude-module选项来排除不需要的模块。

1. Python环境要求

在 CentOS 7 上,需要安装 Python 的开发工具包(python3-devel)。我们默认情况下,是不按照这些的,如果安装pyinstaller后,出现如下提示,需要安装python开发工具包。

运行pyinstaller,提示:
PyInstaller.exceptions.PythonLibraryNotFoundError: Python library not found: libpython3.8.so.1.0, libpython3.8.so
This means your Python installation does not come with proper shared library files.
This usually happens due to missing development package, or unsuitable build parameters of the Python installation.

1.1. CentOS7环境信息

查看安装python依赖环境glibc、gcc等。

ldd --version
ldd (GNU libc) 2.17

gcc --version
gcc (GCC) 5.4.0

查看操作系统信息。


                
PyInstallerPython的一个打包工具,它可以将Python源码打包成可执行文件(.exe),然后将该文件部署到目标主机上。PyInstaller支持多平台打包部署,包括Windows、macOS、GNU/Linux、AIX、Solaris、FreeBSD和OpenBSD。安装PyInstaller可以使用pip install -U pyinstaller命令进行初次安装,使用pip install --upgrade pyinstaller命令进行升级。通过使用pyinstaller --version命令可以查看PyInstaller的版本号。 在打包过程中,可以使用一些命令参数来进行配置。例如,使用--add-datas参数可以设置静态路径,格式为欲打包的源路径:打包后的目标路径,路径之间以冒号分隔。可以使用-i参数指定生成的exe文件的图标。最后,加上需要打包Python源文件路径,可以使用pyinstaller -F your_program.py将源文件打包成一个独立的exe应用程序,使用pyinstaller -D your_program.py将源文件打包成一个文件夹。 总之,PyInstaller是一个方便的工具,可以帮助Python开发者将他们的程序打包成可执行文件,并且可以在不同的平台上进行部署。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python打包部署工具PyInstaller - 将Python打包成exe应用程序(含flask静态目录)的操作方法](https://blog.csdn.net/web15085181368/article/details/125241164)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肖永威

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值