文章目录
一、golang生成可供python调用的库(python调用Go代码)
1. 使用场景或背景
由于Python项目中有关于支付签名与验签的模块,是自定的一些内部逻辑,基于安全性考虑, 希望改用C/C++或者Go 来重构该部分模块,做到加解签过程透明,上层代码只需要关心结果。
2. python调用Go代码实现思路
-
Go语言打包成动态链接库文件(dll,so)
-
使用python语言来调用so
-
如何让python像引入普通库一样,python无感知so调用呢?
golang编写python共享库(1)
参考URL: https://wenku.baidu.com/view/58d87aa2bad528ea81c758f5f61fb7360b4c2beb.html
思路:
利用go build 动态库时,直接代码中引入python.h相关函数,直接将你的方法,以模块形式注册到python中。
3. 代码demo
网上demo
编写特殊的go程序
package main
import "C" //必须引入C库.Go里面需要显示的引入C模块, 让编译器支持生成动态链接库, 并且在代码中可以使用C语言的数据类型
import "fmt"
//加入下面注释代码,表示导出,可以被python调用
//export PrintDll
func PrintDll() {
fmt.Println("我来自dll")