행궁동 데이터 엔지니어

반응형

Jupyter Notebook 또는 Jupyter Lab 환경에서 Golang를 사용하는 방법입니다.

컴파일 언어인 Golang을 인터프리터 언어(ex. Python)처럼 노트북파일의 셀단위로 바로바로 실행할 수 있습니다.

 

(Python 처럼 바로바로 실행결과를 확인할 수 있습니다 - 아래 사진 참고)

이미지 출처: https://github.com/gopherdata/gophernotes

주피터 환경에서 Golang을 실행하기 위해 gohpernotes라는 gopherData 커뮤니티에서 관리하는 오픈소스를 활용합니다.

* 짤막 정보

  • Gopher: Golang의 마스코트 캐릭터

출처: https://go.dev/blog/gopher

 

시작 전에

  • 환경: Mac OS 13.0 (M1 프로세서)
  • 운영체제가 Windows, Linux로 다른 경우에도 절차는 똑같습니다.
  • 다만 운영체제별 Jupyter의 경로와 kennel.json 파일 수정 방법에는 차이가 있습니다.
  • 다른 운영체제인 경우에는 아래 절차를 빠르게 훑고 gophernotes github의 README.md 파일에서 해당 운영체제 명령어를 확인하시면 될 것 같습니다.

절차 2단계

1 단계: go에 gophernotes 설치

2 단계: Jupyter 경로에 gophernotes kernel.json 파일 복사 및 수정

 

gohpernotes github 주소

https://github.com/gopherdata/gophernotes

 

GitHub - gopherdata/gophernotes: The Go kernel for Jupyter notebooks and nteract.

The Go kernel for Jupyter notebooks and nteract. Contribute to gopherdata/gophernotes development by creating an account on GitHub.

github.com

 

1. go에 gophernotes 설치

gohpernotes를 go에 설치하는 명령어들입니다.

 

GOPATH 경로에 있는 패키지 관리 경로(src 디렉토리)에 gophernotes 프로젝트 디렉토리 생성

mkdir -p "$(go env GOPATH)"/src/github.com/gopherdata
cd "$(go env GOPATH)"/src/github.com/gopherdata

gophernotes 프로젝트 복사 (git clone)

git clone <https://github.com/gopherdata/gophernotes>

gophernotes 경로로 이동해 최신 버전(’2023년 1월 7일 기준 v0.7.5)으로 변경 후 설치

cd gophernotes
git checkout -f v0.7.5
go install

 

 

2. Jupyter 경로에 gophernotes kernel.json 파일 복사 및 수정

Jupyter 경로에 kernel.json 파일을 생성하는 명령어들입니다.

 

kernels/gophernotes 디렉토리 생성

mkdir -p ~/Library/Jupyter/kernels/gophernotes

생성한 디렉토리로 이동 후 1번 gophernotes 경로에 설치된 kernel 디렉토리 복사

cd ~/Library/Jupyter/kernels/gophernotes
cp "$(go env GOPATH)"/src/github.com/gopherdata/gophernotes/kernel/* "."

sed 명령어로 kernel.json 파일 편집

chmod +w ./kernel.json # in case copied kernel.json has no write permission
sed "s|gophernotes|$(go env GOPATH)/bin/gophernotes|" < kernel.json.in > kernel.json

편집 완료된 kernel.json 파일 예시

kernel.json 파일에 gophernotes 명령어 경로를 추가했습니다 (go/bin/gophernotes)

 

 

3. Jupyter Notebook 또는 Lab 실행

Jupyter Notebook, Lab을 실행하면 Go Notebook이 추가된 걸 확인할 수 있습니다.

jupyter lab
jupyter notebook

Jupyter Lab 예시

 

Jupyter Notebook 예시

 

 

기타 궁금하신 사항은 댓글 남겨주세요.

감사합니다.

 

 

참고자료

1. new_challenge님 블로그, "[Golang] 쥬피터노트북(jupyter) 환경에서 고랭 사용하기",  https://soyoung-new-challenge.tistory.com/101
2. gopherData github 커뮤니티: https://github.com/gopherdata/gophernotes
반응형

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band