golang生成可供python调用的库(python调用Go代码)

本文介绍了如何使用Go语言编写代码并编译为动态库,以便Python可以调用。通过cgo工具,Go代码可以直接引入Python.h并注册到Python模块中。文章提供了代码示例,包括编写Go程序、编译动态库和Python调用so文件的步骤。同时,文章讨论了CGO内存模型,并解决了在构建过程中遇到的Python.h找不到的错误问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、golang生成可供python调用的库(python调用Go代码)

1. 使用场景或背景

由于Python项目中有关于支付签名与验签的模块,是自定的一些内部逻辑,基于安全性考虑, 希望改用C/C++或者Go 来重构该部分模块,做到加解签过程透明,上层代码只需要关心结果。

2. python调用Go代码实现思路

  1. Go语言打包成动态链接库文件(dll,so)

  2. 使用python语言来调用so

  3. 如何让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")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

西京刀客

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

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

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

打赏作者

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

抵扣说明:

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

余额充值