#408·grumpy

在 Python 代码中无法导入某些 Python 模块库(例如 json),然后在 Go 代码中调用这些模块库

作者: always-less创建于 2018年7月30日更新于 2018年7月30日

我的 Python 代码如下: Python def feature1(inputJsonString): print inputJsonString import json import sys print json.dumps(1) return sys.version 而 go main 代码如下: package main import ... // 我已经导入了 "$GOPATH/src/python" 下的所有包,因此 "json" 相关的库都应该被导入 func main() { f := grumpy.NewRootFrame() mods, _ := grumpy.ImportModule(f, "feature1") fmt.Printf("mods: %v\n", mods) feature1, _ := grumpy.GetAttr(f, mods[0], grumpy.NewStr("feature1"), nil) args := f.MakeArgs(1) args[0] = grumpy.NewStr({"a": 1, "b": "I am string"}).ToObject() result, err := feature1.Call(f, args, nil) fmt.Printf("result type: %v\n", reflect.TypeOf(result)) fmt.Printf("result: %v\n", result.String()) fmt.Printf("err: %v\n", err) 当我尝试运行 go main 代码时,我得到的结果如下: result: nil err: TypeError('bad operand type for unary -: 'tuple'',) 我发现这个错误是由生成的 go 代码 feature1.go 中的 grumpy.ImportModule 函数引起的,但我不清楚这个错误是如何引发的。此外,当我尝试导入其他 Python 标准库(如 "sys")时,一切都正常运行。 我的 Golang 版本是 go1.10.3 darwin/amd64