pyinstaller打包动态库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pyinstaller打包动态库相关的知识,希望对你有一定的参考价值。

参考技术A pyinstaller是一个很好的工具,可以把Python工程文件打包成可执行文件
这样的好处很多,可以避免源码泄露,也方便用户阅读和管理
但是当程序集涉及到动态库的时候,常规操作无法将动态库自动打包到可执行文件中

举个例子,下图所示的程序集中有需要用到两个".so"的动态库

我们使用常规指令对该程序集进行打包

上述打包指令执行完成后,在当前文件夹会生产一个"disk"文件夹,里面有一个"main"的可执行文件
最终需要把下述三个文件同时放在一起,可执行文件"main"才能正常执行

现在的想法是,在pyinstaller打包过程中把两个".so"动态库也编译到可执行文件中
经过一番探索,这个想法是可以实现的,需要用到配置文件".spec"

配置文件中Analysis[binaries]专门用来放置动态库的位置,不过格式稍微有些特殊

大功告成
顺便提一句,如果有素材(图标、模型、文件等)需要打包,则直接把路径填写到Analysis[data]中即可

参考资料:
Pyinstaller 打包发布经验总结
Pyinstaller打包py文件简明教程
pyinstaller官方文档

Python第三方打包库——PyInstaller

(1).介绍

  PyInstaller是Python的第三方打包库,它可以实现将.py扩展名的任何Python的源代码转换成Windows、Linux、Mac OS X下面的可执行文件。对于Windows来讲,PyInstaller可以将Python源代码变成.exe的可执行文件,这样就可以直接运行程序,而不需要安装Python解释器,也不需要对计算机进行相关的环境限制。

  官网:http://www.pyinstaller.org/

  安装第三方库需要使用pip工具,在命令行下运行安装命令(不是IDLE)。注意:需要将Python目录和其下的Scripts目录加到环境变量中

  使用命令pip install pyinstaller安装第三方库,安装之后会提示successfully installed,告知是否安装成功。

(2)使用说明

  在PyInstaller安装完成后,会在Python目录下额Scripts目录下生成运行文件。此时在命令行下使用Pyinstaller -F <.py文件地址>命令就可以打包程序。

  例如:在Windows下运行

C:\\Users\\Administrator>PyInstaller -F C:\\Users\\Administrator\\Desktop\\hello_world.py

  PyInstaller运行完成后会产生文件夹,在文件夹中就有.exe文件。

(3).常用选项

选项 描述
-h 查看帮助
--clean 清理打包过程中产生的临时文件
-D,--onedir

指定创建包含可执行文件的文件夹dist(文件夹在什么位置需要注意看提示信息)

-F,--onefile 在文件夹dist中只生成独立的打包文件,这个文件可以完整的实现.py文件源代码的相同功能
-i <图表文件名.ico> 指定打包文件使用的图标(.ico)

  打包完成后,除了用于存放.exe文件的dist文件夹,另外两个存放临时文件的文件夹均可手动删除。

 

 

  打包后程序就可以在相同系统上运行,不需要安装PyInstaller,也不需要Python。

以上是关于pyinstaller打包动态库的主要内容,如果未能解决你的问题,请参考以下文章

Python第三方打包库——PyInstaller

pyinstaller打包机器学习库若干坑

《PyInstaller打包实战指南》第二十二节 单文件模式打包Playwright

《PyInstaller打包实战指南》第二十二节 单文件模式打包Playwright

虚拟环境下通过pyinstaller 打包

虚拟环境下通过pyinstaller 打包