gophernotes
Jupyter Notebook 및 nteract용 Go 커널입니다. 이를 통해 브라우저 기반 노트북 또는 데스크톱 앱에서 Go를 대화형으로 사용할 수 있습니다. gophernotes
사용하여 라이브 Go 코드, 방정식, 시각화 및 설명 텍스트가 포함된 문서를 만들고 공유하세요. 라이브 Go 코드가 포함된 이 노트북은 이메일, Dropbox, GitHub 및 Jupyter 노트북 뷰어를 통해 다른 사람과 공유할 수 있습니다. Go 노트북을 사용하여 데이터 과학 또는 기타 흥미로운 작업을 수행해 보세요!
감사의 말 - 이 프로젝트는 내부적으로 gomacro라는 Go 인터프리터를 활용하여 Go 코드를 대화형으로 평가합니다. gophernotes 로고는 뛰어난 Marcus Olsson이 디자인했으며 Renee French의 오리지널 Go Gopher 디자인에서 영감을 받았습니다.
go install
위해 Go 바이너리를 실행할 수 있음).아래 지침은 Linux와 FreeBSD 모두에서 작동합니다.
방법 1: 모듈로 빠른 설치
go install github.com/gopherdata/[email protected]
mkdir -p ~ /.local/share/jupyter/kernels/gophernotes
cd ~ /.local/share/jupyter/kernels/gophernotes
cp " $( go env GOPATH ) " /pkg/mod/github.com/gopherdata/[email protected]/kernel/ * " . "
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
방법 2: GOPATH에서 수동 설치
mkdir -p " $( go env GOPATH ) " /src/github.com/gopherdata
cd " $( go env GOPATH ) " /src/github.com/gopherdata
git clone https://github.com/gopherdata/gophernotes
cd gophernotes
git checkout -f v0.7.5
go install
mkdir -p ~ /.local/share/jupyter/kernels/gophernotes
cp kernel/ * ~ /.local/share/jupyter/kernels/gophernotes
cd ~ /.local/share/jupyter/kernels/gophernotes
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
gophernotes
바이너리가 GOPATH에 설치되어 있는지 확인하려면 직접 실행하세요.
" $( go env GOPATH ) " /bin/gophernotes
그러면 다음이 표시됩니다.
2017/09/20 10:33:12 Need a command line argument specifying the connection file.
참고 - JUPYTER_PATH
환경 변수가 설정되어 있거나 이전 버전의 Jupyter를 사용하는 경우 이 커널 구성을 다른 디렉터리에 복사해야 할 수도 있습니다. 다음을 실행하여 검색할 디렉터리를 확인할 수 있습니다.
jupyter --data-dir
중요 사항 - gomacro는 타사 라이브러리를 가져올 때 plugin
패키지를 사용합니다. 이 패키지는 명령 strip gophernotes
실행 하지 않는 한 Go 1.10.2+가 설치된 Mac OS X에서 안정적으로 작동합니다.
방법 1: 모듈로 빠른 설치
go install github.com/gopherdata/[email protected]
mkdir -p ~ /Library/Jupyter/kernels/gophernotes
cd ~ /Library/Jupyter/kernels/gophernotes
cp " $( go env GOPATH ) " /pkg/mod/github.com/gopherdata/[email protected]/kernel/ * " . "
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
방법 2: GOPATH에서 수동 설치
mkdir -p " $( go env GOPATH ) " /src/github.com/gopherdata
cd " $( go env GOPATH ) " /src/github.com/gopherdata
git clone https://github.com/gopherdata/gophernotes
cd gophernotes
git checkout -f v0.7.5
go install
mkdir -p ~ /Library/Jupyter/kernels/gophernotes
cp kernel/ * ~ /Library/Jupyter/kernels/gophernotes
cd ~ /Library/Jupyter/kernels/gophernotes
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
gophernotes
바이너리가 GOPATH에 설치되어 있는지 확인하려면 직접 실행하세요.
" $( go env GOPATH ) " /bin/gophernotes
그러면 다음이 표시됩니다.
2017/09/20 10:33:12 Need a command line argument specifying the connection file.
참고 - JUPYTER_PATH
환경 변수가 설정되어 있거나 이전 버전의 Jupyter를 사용하는 경우 이 커널 구성을 다른 디렉터리에 복사해야 할 수도 있습니다. 다음을 실행하여 검색할 디렉터리를 확인할 수 있습니다.
jupyter --data-dir
중요 사항 - gomacro는 타사 라이브러리를 가져올 때 plugin
패키지를 사용합니다. 이 패키지는 현재 Linux 및 Mac OS X에서만 지원됩니다. 따라서 Go 노트북에서 타사 패키지를 활용해야 하고 Windows에서 실행 중인 경우 Docker 설치를 사용하고 Docker에서 gophernotes/Jupyter를 실행해야 합니다.
GOPATH 내에서 gophernotes를 다운로드하고 컴파일하고 설치하십시오.
go env GOPATH > temp.txt
set /p GOPATH=<temp.txt
mkdir %GOPATH%srcgithub.comgopherdata
cd /d %GOPATH%srcgithub.comgopherdata
git clone https://github.com/gopherdata/gophernotes
cd gophernotes
git checkout -f v0.7.5
go install
커널 구성을 복사합니다.
mkdir %APPDATA%jupyterkernelsgophernotes
xcopy %GOPATH%srcgithub.comgopherdatagophernoteskernel %APPDATA%jupyterkernelsgophernotes /s
JUPYTER_PATH
환경 변수가 설정되어 있거나 이전 버전의 Jupyter를 사용하는 경우 이 커널 구성을 다른 디렉터리에 복사해야 할 수도 있습니다. 다음을 실행하여 검색할 디렉터리를 확인할 수 있습니다.
jupyter --data-dir
%APPDATA%jupyterkernelsgophernoteskernel.json
gophernotes.exe의 전체 경로(일반적으로 %GOPATH%bin)로 업데이트합니다. 예를 들어:
{
"argv": [
"C:\gopath\bin\gophernotes.exe",
"{connection_file}"
],
"display_name": "Go",
"language": "go",
"name": "go"
}
Docker를 사용하면 아무것도 설치하지 않고도 Jupyter + gophernotes를 시험해 보거나 실행할 수 있습니다. 표준 라이브러리의 항목만 필요한 Go 노트북을 실행하려면 다음을 실행하세요.
docker run -it -p 8888:8888 gopherdata/gophernotes
또는 일반적인 Go 데이터 과학 패키지(gonum, gota, golearn 등)에 액세스하여 Go 노트북을 실행하려면 다음을 실행하세요.
docker run -it -p 8888:8888 gopherdata/gophernotes:latest-ds
두 경우 모두 이 명령을 실행하면 브라우저에서 Jupyter에 액세스하기 위해 따라갈 수 있는 링크가 출력됩니다. 또한 Docker 이미지 외부 위치에 노트북을 저장하거나 로드하려면 볼륨 마운트를 활용해야 합니다. 예를 들어:
docker run -it -p 8888:8888 -v /path/to/local/notebooks:/path/to/notebooks/in/docker gopherdata/gophernotes
위의 로컬 설치 중 하나를 완료한 경우(즉, Docker 설치가 아님) jupyter 노트북 서버를 시작합니다.
jupyter notebook
New
드롭다운 메뉴에서 Go
선택합니다.
재미있게 보내세요!
상호 작용을 시작하십시오.
nteract 메뉴에서 언어 -> 이동을 선택하세요.
재미있게 보내세요!
Go 코드 외에도 다음과 같은 특수 명령도 지원됩니다. 각 명령은 한 줄에 하나씩 있어야 합니다.
gophernotes는 내부적으로 gomacro를 사용하여 Go 코드를 대화형으로 평가합니다. gomacro를 사용하면 대부분의 Go 코드를 평가할 수 있지만 몇 가지 제한 사항이 있습니다. 이에 대해서는 여기에서 자세히 설명합니다. 특히 gophernotes는 다음을 지원하지 않습니다.
plugin
패키지의 현재 제한사항입니다.또한 새로운 명명된 유형의 생성이 에뮬레이트되며 해당 메소드는 해석된 코드에만 표시됩니다.
환경에 따라 ~/.local/share/jupyter/kernels/gophernotes
에 복사하기 전에 kernel/kernel.json
에서 gophernotes
실행 파일의 경로를 수동으로 변경해야 할 수도 있습니다. 여기에 gophernotes
실행 파일의 전체 경로를 입력하면 더 이상 문제가 발생하지 않습니다.
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/notebook/base/handlers.py", line 458, in wrapper
result = yield gen.maybe_future(method(self, *args, **kwargs))
File "/usr/local/lib/python2.7/site-packages/tornado/gen.py", line 1008, in run
value = future.result()
...
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1335, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
이미 실행 중인 경우 jupyter를 중지합니다.
gophernotes 실행 파일 경로에서 /go/bin/gophernotes
에 심볼릭 링크를 추가하세요. 위의 지침을 따랐다면 다음과 같습니다.
sudo ln -s $HOME/go/bin/gophernotes /go/bin/gophernotes
jupyter를 다시 시작하면 이제 실행될 것입니다.
첫 번째 분석에서는 Go 모듈을 지원하는 새로운 가져오기 메커니즘의 한계인 것 같습니다. %go111module off
명령을 사용하여 이전(모듈을 인식하지 않는) 메커니즘을 전환할 수 있습니다.
모듈 지원을 다시 활성화하려면 %go111module on
실행하세요.
Jupyter 노트북의 로그를 보려면 --log-level 옵션을 사용하세요.
jupyter notebook --log-level DEBUG