文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

无法在我的 python 文件中使用 go 共享库

2024-02-09 08:05

关注

php小编小新你好,最近有读者在使用python文件时遇到了一个问题,他无法在自己的python文件中使用go共享库。这个问题可能是由于一些配置或环境问题导致的。在解决这个问题之前,你可以尝试检查你的环境变量和路径设置,确保你的go共享库正确安装并且路径正确设置。另外,你还可以尝试重新安装或更新你的go共享库,以确保它与你的python版本兼容。如果问题仍然存在,你可以考虑在相关的开发社区或论坛上寻求帮助,那里可能有其他开发者遇到过类似的问题并可以提供解决方案。希望这些信息对你有帮助!

问题内容

我有一个名为 main.go 的文件,它定义了一个名为 test 的函数。 我希望能够从我的 python 脚本中调用这个函数。

ma​​in.go

package main

import "C"

// export test
func test() int {
    return 1
}

func main() {}

编译: go build -o lib.so -buildmode=c-shared main.go

ma​​in.py

import ctypes

mylib = ctypes.CDLL("./lib.so")


result = mylib.test()


print(result)

当我运行 python 程序时,出现以下错误: AttributeError:./lib.so:未定义符号:test

我错过了什么?

Go版本 go版本go1.21.3 linux/amd64

Python 版本: Python 3.10.12

我尝试更新 Go(之前我的版本是 1.21.1)

解决方法

除了 //export 之外,一切都是正确的 有一个额外的空间造成了问题

package main

import "C"

//export test      <------ remove the extra space here
func test() int {
    return 1
}

func main() {}
python main.py

输出:

1

以上就是无法在我的 python 文件中使用 go 共享库的详细内容,更多请关注编程网其它相关文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯