반응형

<참조> https://sanggi-jayg.tistory.com/entry/Python-에서-go-함수-사용-하는-방법

파이썬에서 Go 함수 호출하기 

 

1. Go 코드 작성 (hello.go)

반드시 main 패키지로 지정 

package main

import (
    "C"
    "fmt"
)

//export Hello
func Hello() {
    fmt.Println("Hello, Python!")
}

func main() {

}

2. 빌드
go build -buildmode=c-shared -o go_library.so hello.go

그러면 아래 파일이 생김 (C 에서 공유 라이브러리로 호출 가능)
go_library.h  go_library.so

헤더 파일(*.h)에는 아래 형 정의가 있음
typedef signed char GoInt8;
typedef unsigned char GoUint8;
typedef short GoInt16;
typedef unsigned short GoUint16;
typedef int GoInt32;
typedef unsigned int GoUint32;

3. 파이썬 코드 작성 (main.py) 

import ctypes

library = ctypes.cdll.LoadLibrary('./go_library.so')

hello = library.Hello
hello()

4. 파이썬 코드 실행

python3 main.py

[실행 결과]

Hello, Python!



[참고] CentOS에 Go 설치하기 
사이트 방문하여 최신 버전 확인 (2023-10-30 현재: go1.21.3.linux-amd64.tar.gz)
https://golang.org/dl
다운로드
# cd /usr/local/src
# sudo curl -O https://dl.google.com/go/go1.21.3.linux-amd64.tar.gz
파일 압축 해제
# sudo tar -C /usr/local -xzf go1.21.3.linux-amd64.tar.gz
버전 확인
# cd /usr/local/go/bin
# ./go version
go version go1.21.3 linux/amd64

 

반응형

+ Recent posts