从main.go,我必须调用一个依赖于Python运行时的CPython文件夹(mycprog)。文件夹“MycPROG”是用C++编写的,但被封装到Python模块中,这就通过Python解释器。p>
课程结构
/src
/main
main.go
/mycprog
a1.cpp (this has a function **object EEEdept::getStaffID()**`)
a1.hpp
a2.cpp
main.go
package main
// #cgo pkg-config: python3
// #cgo CFLAGS : -I./ -I/usr/include/python3.6m
// #cgo LDFLAGS: -L/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu -L/usr/lib -lpython3.6m -lpthread -ldl -lutil -lm
import "C"
import (
"fmt"
"os/exec"
)
func main() {
cmd := exec.Command("python", "-c", "import mycprog; mycprog.getStaffID()")
out,err := cmd.CombinedOutput()
if err != nil {
fmt.Println(err);
}
fmt.Println(string(out))
}
当我构建main.go时,我得到了这个错误
exit status 1
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'mycprog'
从我的角度来看,exec.Command语法是错误的,我遵循了参考中的示例
参考资料:
https://lmjw.github.io/2017/11/26/blog-docker-python-golang.html
如果在导入“C”之后添加了导入“mycprog”,则得到
#包括<;补丁级别.h>;编译终止
我需要修复exec.Command中的哪个部分
您可以在定义命令后尝试更改工作目录:
相关问题 更多 >
编程相关推荐