【亲测执行成功,踩坑记录】Go调用Python3成功


看网上有很多go调用Python的资料,但鱼龙混杂,很多还是Python2的,因此,亲测一把,做个记录。
微信公众号:leetcode_algos_life

前提条件

目前,go-python3的sdk是使用,https://github.com/DataDog/go-python3
注意⚠️:环境只能在python3.7,否则会报错。

conda安装后,直接 conda create -n pygo python=3.7

测试

go代码(main.go)

package main

import "github.com/DataDog/go-python3"

func main() {

        defer python3.Py_Finalize()
        python3.Py_Initialize()
        python3.PyRun_SimpleString("print('hello from python in go')")

}

然后执行:

go mod tiny
go run main.go

错误信息及解决方案

错误信息:

go/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/usr/bin/ld: cannot find -lpython3.7m
collect2: error: ld returned 1 exit status

解决方案:

rm -rf ~/.cache/go-build
export CXXFLAGS="-stdlib=libstdc++" CC=/usr/bin/gcc CXX=/usr/bin/g++

接着报错,报错信息

export PKG_CONFIG_PATH=gopy(你自己创建的虚拟环境路径)/lib/pkgconfig
go get github.com/DataDog/go-python3
go  mod  tidy
go run main.go
hello from python in go

over

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值