gophernotes
es un kernel Go para portátiles Jupyter e nteract. Le permite utilizar Go de forma interactiva en una aplicación de escritorio o portátil basada en navegador. Utilice gophernotes
para crear y compartir documentos que contengan código Go en vivo, ecuaciones, visualizaciones y texto explicativo. Estos cuadernos, con el código Go en vivo, se pueden compartir con otras personas a través de correo electrónico, Dropbox, GitHub y Jupyter Notebook Viewer. ¡Continúe y practique ciencia de datos, o cualquier otra cosa interesante, con los cuadernos Go!
Agradecimientos : este proyecto utiliza un intérprete de Go llamado gomacro para evaluar el código de Go de forma interactiva. El logotipo de Gophernotes fue diseñado por el brillante Marcus Olsson y se inspiró en el diseño original de Go Gopher de Renee French.
go install
).Las instrucciones a continuación deberían funcionar tanto en Linux como en FreeBSD.
Método 1: instalación rápida como módulo
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
Método 2: instalación manual desde 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
Para confirmar que el binario gophernotes
está instalado en GOPATH, ejecútelo directamente:
" $( go env GOPATH ) " /bin/gophernotes
y deberías ver lo siguiente:
2017/09/20 10:33:12 Need a command line argument specifying the connection file.
Nota : si tiene configurada la variable ambiental JUPYTER_PATH
o si está utilizando una versión anterior de Jupyter, es posible que deba copiar esta configuración del kernel a otro directorio. Puedes comprobar en qué directorios se buscará ejecutando:
jupyter --data-dir
Nota importante : gomacro se basa en el paquete plugin
al importar bibliotecas de terceros. Este paquete funciona de manera confiable en Mac OS X con Go 1.10.2+ siempre y cuando nunca ejecute el comando strip gophernotes
.
Método 1: instalación rápida como módulo
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
Método 2: instalación manual desde 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
Para confirmar que el binario gophernotes
está instalado en GOPATH, ejecútelo directamente:
" $( go env GOPATH ) " /bin/gophernotes
y deberías ver lo siguiente:
2017/09/20 10:33:12 Need a command line argument specifying the connection file.
Nota : si tiene configurada la variable ambiental JUPYTER_PATH
o si está utilizando una versión anterior de Jupyter, es posible que deba copiar esta configuración del kernel a otro directorio. Puedes comprobar en qué directorios se buscará ejecutando:
jupyter --data-dir
Nota importante : gomacro se basa en el paquete plugin
al importar bibliotecas de terceros. Actualmente, este paquete solo es compatible con Linux y Mac OS X. Por lo tanto, si necesita utilizar paquetes de terceros en sus portátiles Go y está ejecutando Windows, debe utilizar la instalación de Docker y ejecutar gophernotes/Jupyter en Docker.
Descargue gophernotes dentro de GOPATH, compílelo e instálelo
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
Copie la configuración del kernel:
mkdir %APPDATA%jupyterkernelsgophernotes
xcopy %GOPATH%srcgithub.comgopherdatagophernoteskernel %APPDATA%jupyterkernelsgophernotes /s
Tenga en cuenta que si tiene configurada la variable ambiental JUPYTER_PATH
o si está utilizando una versión anterior de Jupyter, es posible que deba copiar esta configuración del kernel a otro directorio. Puedes comprobar en qué directorios se buscará ejecutando:
jupyter --data-dir
Actualice %APPDATA%jupyterkernelsgophernoteskernel.json
con la RUTA COMPLETA a su gophernotes.exe (generalmente en %GOPATH%bin). Por ejemplo:
{
"argv": [
"C:\gopath\bin\gophernotes.exe",
"{connection_file}"
],
"display_name": "Go",
"language": "go",
"name": "go"
}
Puedes probar o ejecutar Jupyter + gophernotes sin instalar nada usando Docker. Para ejecutar una libreta Go que solo necesita elementos de la biblioteca estándar, ejecute:
docker run -it -p 8888:8888 gopherdata/gophernotes
O para ejecutar un cuaderno Go con acceso a paquetes comunes de ciencia de datos de Go (gonum, gota, golearn, etc.), ejecute:
docker run -it -p 8888:8888 gopherdata/gophernotes:latest-ds
En cualquier caso, ejecutar este comando debería generar un enlace que puede seguir para acceder a Jupyter en un navegador. Además, para guardar y/o cargar cuadernos desde una ubicación fuera de la imagen de Docker, debe utilizar un montaje de volumen. Por ejemplo:
docker run -it -p 8888:8888 -v /path/to/local/notebooks:/path/to/notebooks/in/docker gopherdata/gophernotes
Si completó una de las instalaciones locales anteriores (es decir, no la instalación de Docker), inicie el servidor de notebook jupyter:
jupyter notebook
Seleccione Go
en el menú desplegable New
.
¡Divertirse!
Inicie Interact.
En el menú de interacción, seleccione Idioma -> Ir.
¡Divertirse!
Además del código Go, también se admiten los siguientes comandos especiales; deben estar en una línea propia:
gophernotes usa gomacro bajo el capó para evaluar el código Go de forma interactiva. Puede evaluar casi cualquier código Go con gomacro, pero existen algunas limitaciones, que se analizan con más detalle aquí. En particular, gophernotes NO admite:
plugin
Go.Además, se emula la creación de nuevos tipos con nombre y sus métodos son visibles sólo para el código interpretado.
Dependiendo de su entorno, es posible que necesite cambiar manualmente la ruta al ejecutable gophernotes
en kernel/kernel.json
antes de copiarlo a ~/.local/share/jupyter/kernels/gophernotes
. Puede colocar la ruta completa al ejecutable gophernotes
aquí y no debería tener más problemas.
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
Detenga jupyter, si ya se está ejecutando.
Agregue un enlace simbólico a /go/bin/gophernotes
desde su ruta al ejecutable de gophernotes. Si siguió las instrucciones anteriores, esto será:
sudo ln -s $HOME/go/bin/gophernotes /go/bin/gophernotes
Reinicie jupyter y ahora debería estar en funcionamiento.
En un primer análisis, parece ser una limitación del nuevo mecanismo de importación que admite módulos Go. Puede cambiar el mecanismo antiguo (no compatible con módulos) con el comando %go111module off
Para volver a habilitar la compatibilidad con módulos, ejecute %go111module on
Para ver los registros de su notebook Jupyter, use la opción --log-level
jupyter notebook --log-level DEBUG