python调用go语言的代码

news/2024/11/8 19:30:27/

最近在学习上述Python,go语言,研究下互相调用的事项,在windows下使用

linux下:

gcc -o libpycall.so -shared -fPIC pycall.c

windows下:

gcc -o libpycall.dll -shared -fPIC pycall.c

但是实际的过程中编译成*.so文件在windows也能使用,下面的代码都是在windows下使用的可以运行成功 ;

一、pyton调用go语言的代码

准备工作:

1.1基础环境要求[解决go语言编译用gcc编译的事情,必须得有gcc编译器]

必须得有这个,同时把这个放在环境变量里面

具体参加:这里但是需要下载一个64位环境的

x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0.7z

https://ht666666.blog.csdn.net/article/details/124512392

 
1.2编写go代码

一个简单的加法函数go代码实现,

pycallgo.go

package mainimport "C"//export Add
func Add(a, b int) int {return a + b
}
func main() {}//编译命令
//go build -buildmode=c-shared -o libadd.so libadd.go

1.3编译go代码

//编译命令
//go build -buildmode=c-shared -o libadd.so libadd.go

新生成的文件

 1.4把上述新生成的两个文件复制到python的目录下

[实质上,复制一个*.so文件即可,不用复制*.h文件]

1.5编写python调用代码

from ctypes import cdllif __name__ == '__main__':libadd=cdll.LoadLibrary("./libadd.so")result=libadd.Add(6,9)ret2=libadd.Add(10,19)print(result,ret2)

1.6显示效果

 可以使用


Python与Go之间的参数传递, 处理非INT型时需要都转为对应的C类型

ctypes需要显式地声明DLL函数的参数和返回期望的数据类型

注意在Python3中字符串bytes和string的区别

Go模块需要//export 声明外部可调用

Go处理C的类型是需要显式转换
 

 pyton调用go程序  类型是int的可以没有问题,是他的 你的需要研究其他类型

不同语言中类型事项的研究


http://www.ppmy.cn/news/331874.html

相关文章

3D建模需要什么电脑配置?

3D建模需要什么电脑配置?什么样的电脑可以建模? 接下来这篇文章会很专业给大家介绍一下电脑配置方面的问题,希望大家可以耐心看看 ,看完以后会让你对于电脑这一块的了解有一个很大的提升。 如果大家想学习3d建模,这个…

图形渲染CPU重要还是显卡重要?3D渲染、三维建模速度和显卡有关吗?三维制图电脑配置!3D设计用什么显卡

图形渲染CPU重要还是显卡重要?3D渲染、三维建模速度和显卡有关吗?三维制图电脑配置!3D设计用什么显卡 来源: 冀高升的日志 本文结论:3D渲染最终主要靠CPU来完成,同时内存容量也要足够大。而3D建模主要由图形…

2023 Ai绘画 stable diffusion 笔记本配置硬件要求

原文:2023 Ai绘画 stable diffusion 笔记本配置硬件要求 - 知乎 stable diffusion Ai 绘画主要是吃显卡: 算力:越强,出图越快 显存:越大,所设置图片的分辨率越高 所以核显机型就不要考虑了,另…

【Unity入门】25.入门结课Demo--神鸟大战怪兽

【Unity入门】入门结课Demo--神鸟大战怪兽 大家好,我是Lampard~~ 欢迎来到Unity入门系列博客,所学知识来自B站阿发老师~感谢 (一) 前言 经过了两个月的学习,我们也顺利的完成了入门课程,最后就用一个Demo作为我们的结课句号吧&am…

柯尼卡美能达Konica Minolta magicolor 2300DL 打印机驱动

柯尼卡美能达Konica Minolta magicolor 2300DL 打印机驱动是官方提供的一款打印机驱动,本站收集提供高速下载,用于解决打印机与电脑连接不了,无法正常使用的问题,本动适用于:Windows XP / Windows 7 / Windows 8 / Win…

柯尼卡美能达Konica Minolta bizhub 4020 打印机驱动

柯尼卡美能达Konica Minolta bizhub 4020 打印机驱动是官方提供的一款一体机驱动,本站收集提供高速下载,用于解决一体机与电脑连接不了,无法正常使用的问题,本动适用于:Windows XP / Windows 7 / Windows 8 / Windows …

柯尼卡美能达Konica Minolta bizhub 4000P 打印机驱动

柯尼卡美能达Konica Minolta bizhub 4000P 打印机驱动是官方提供的一款打印机驱动,本站收集提供高速下载,用于解决打印机与电脑连接不了,无法正常使用的问题,本动适用于:Windows XP / Windows 7 / Windows 8 / Windows…

Windows柯尼卡打印机驱动安装

打印机型号:柯尼卡 bizhub C300i (打印机机身可见) 1、下载驱动 在柯尼卡驱动官网查找下载打印机驱动 在型号处直接下拉查找自己的型号,例如bizhub C300i,点击搜索获取驱动 下载PCL6打印驱动程序即可,下…