查看动态库是否有
这里以3.8.2为例
cd /usr/local/python382
ldd ./bin/python3
cp ./lib/libpython3.8.so.1.0 /usr/lib64
ldd ./bin/python3
pyinstaller是一个很好的工具,可以把Python工程文件打包成可执行文件这样的好处很多,可以避免源码泄露,也方便用户阅读和管理
但是当程序集涉及到动态库的时候,常规操作无法将动态库自动打包到可执行文件中
举个例子,下图所示的程序集中有需要用到两个".so"的动态库
我们使用常规指令对该程序集进行打包
上述打包指令执行完成后,在当前文件夹会生产一个"disk"文件夹,里面有一个"main"的可执行文件
最终需要把下述三个文件同时放在一起,可执行文件"main"才能正常执行
现在的想法是,在pyinstaller打包过程中把两个".so"动态库也编译到可执行文件中
经过一番探索,这个想法是可以实现的,需要用到配置文件".spec"
配置文件中Analysis[binaries]专门用来放置动态库的位置,不过格式稍微有些特殊
大功告成
顺便提一句,如果有素材(图标、模型、文件等)需要打包,则直接把路径填写到Analysis[data]中即可
参考资料:
Pyinstaller 打包发布经验总结
Pyinstaller打包py文件简明教程
pyinstaller官方文档