Как импортировать файлы, сгенерированные на Cython в golang, используя cgo - PullRequest
0 голосов
/ 30 августа 2018

Я записал свой python-файл в example.c и example.so Я могу экспортировать эти файлы как модуль Python и получить доступ к функции в Python как testing.py:

import example
example.test()

таким образом, я могу легко импортировать мои файлы Python в Python. Как я могу аналогичным образом импортировать эти файлы в golang, используя cgo?

1 Ответ

0 голосов
/ 31 августа 2018

Код Cython включает в себя связывание с кодом для создания модуля Python и преобразования в и из объектов Python и типов C.

Вам может не понадобиться ничего из этого. Например, очень простой мир привет в cgo может быть просто:

/* hello.c */
#include <stdio.h>

static void hello(void) {
    printf("hello world!\n");
}

И вы можете вызвать это из GO с кодом C, используя специальный импорт, а некоторые включают комментарии директивы:

package main

// #include <hello.c>
import "C"

func main() {
    C.hello()
}

Вы, конечно, можете попытаться просто включить вышеупомянутый "cythonized" C-файл, но вам также нужно будет включить соответствующие директивы компоновщика, чтобы Go мог скомпилировать все компоненты Python во время выполнения в ваш двоичный файл Go.

В общем, скорее всего, это не то, что вы собираетесь делать ...

Возможно, вы захотите взглянуть на что-то вроде http://grump.io/, если вы действительно хотите вызывать Python из Go.

...