如何从Python调用Go函数

我试图从 python 调用 go lang 函数,当我调用 python 程序时,我看到以下错误。我指的是Go to python链接。

http://img2.sycdn.imooc.com/64a3fc700001cff607290152.jpg

Python程序

  from ctypes import *

    def call_go_function():


        lib = cdll.LoadLibrary("./awesome.so")

        lib.Add.argtypes = [c_longlong, c_longlong]

        print( lib.Add(12,99)) 


    call_go_function()   

围棋程序


package main

import "C"

import (


"sync"

 )

 var count int

 var mtx sync.Mutex

 //export Add

 func Add(a, b int) int { return a + b }

 func main() {}


拉莫斯之舞
浏览 105回答 2
2回答

慕妹3146593

从 Python 路径来看,这是一个 32 位 Python 版本。您不能混合使用 32 位和 64 位用户空间代码。所以我想你需要:将 Go 代码重新构建为 32 位 DLL(请参阅 GOARCH=386)或安装并运行 64 位 Python 版本。

慕村225694

也许这就是一个环境。尝试运行一个简单的程序。from ctypes import *lib = cdll.LoadLibrary("./func.so")r=lib.fun(10,20)print(r)package mainimport "C"//export funfunc fun(x int,y int) int{    return x+y}func main(){}>go build -o func.so -buildmode=c-shared func.go>python test.py30
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go