如何把python库文件做成动态链接库

Python020

如何把python库文件做成动态链接库,第1张

你只能用python调用dll库,想那些底层的东西一般都是用c来写的所以下面我给您提供一个调用方式

import ctypes

dll = ctypes.WinDLL('yourDll.dll')

print dll.Sun(1+2)

print dll.count('abacadeafg',ord('a'))

pyinstaller是一个很好的工具,可以把Python工程文件打包成可执行文件

这样的好处很多,可以避免源码泄露,也方便用户阅读和管理

但是当程序集涉及到动态库的时候,常规操作无法将动态库自动打包到可执行文件中

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

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

上述打包指令执行完成后,在当前文件夹会生产一个"disk"文件夹,里面有一个"main"的可执行文件

最终需要把下述三个文件同时放在一起,可执行文件"main"才能正常执行

现在的想法是,在pyinstaller打包过程中把两个".so"动态库也编译到可执行文件中

经过一番探索,这个想法是可以实现的,需要用到配置文件".spec"

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

大功告成

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

参考资料:

Pyinstaller 打包发布经验总结

Pyinstaller打包py文件简明教程

pyinstaller官方文档