gophernotes
est un noyau Go pour les notebooks Jupyter et nteract. Il vous permet d'utiliser Go de manière interactive dans un ordinateur portable ou une application de bureau basée sur un navigateur. Utilisez gophernotes
pour créer et partager des documents contenant du code Go en direct, des équations, des visualisations et du texte explicatif. Ces blocs-notes, avec le code Live Go, peuvent ensuite être partagés avec d'autres via e-mail, Dropbox, GitHub et Jupyter Notebook Viewer. Allez-y et faites de la science des données, ou toute autre chose intéressante, avec les cahiers Go !
Remerciements - Ce projet utilise un interpréteur Go appelé gomacro sous le capot pour évaluer le code Go de manière interactive. Le logo Gophernotes a été conçu par le brillant Marcus Olsson et s'est inspiré du design original Go Gopher de Renee French.
go install
).Les instructions ci-dessous devraient fonctionner à la fois sous Linux et sous FreeBSD.
Méthode 1 : installation rapide en tant que module
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éthode 2 : installation manuelle depuis 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
Pour confirmer que le binaire gophernotes
est installé dans GOPATH, exécutez-le directement :
" $( go env GOPATH ) " /bin/gophernotes
et vous devriez voir ce qui suit :
2017/09/20 10:33:12 Need a command line argument specifying the connection file.
Remarque : si la variable d'environnement JUPYTER_PATH
est définie ou si vous utilisez une ancienne version de Jupyter, vous devrez peut-être copier cette configuration du noyau dans un autre répertoire. Vous pouvez vérifier quels répertoires seront recherchés en exécutant :
jupyter --data-dir
Remarque importante - gomacro s'appuie sur le package plugin
lors de l'importation de bibliothèques tierces. Ce package fonctionne de manière fiable sur Mac OS X avec Go 1.10.2+ tant que vous n'exécutez jamais la strip gophernotes
.
Méthode 1 : installation rapide en tant que module
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éthode 2 : installation manuelle depuis 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
Pour confirmer que le binaire gophernotes
est installé dans GOPATH, exécutez-le directement :
" $( go env GOPATH ) " /bin/gophernotes
et vous devriez voir ce qui suit :
2017/09/20 10:33:12 Need a command line argument specifying the connection file.
Remarque : si la variable d'environnement JUPYTER_PATH
est définie ou si vous utilisez une ancienne version de Jupyter, vous devrez peut-être copier cette configuration du noyau dans un autre répertoire. Vous pouvez vérifier quels répertoires seront recherchés en exécutant :
jupyter --data-dir
Remarque importante - gomacro s'appuie sur le package plugin
lors de l'importation de bibliothèques tierces. Ce package n'est actuellement pris en charge que sur Linux et Mac OS X. Ainsi, si vous devez utiliser des packages tiers dans vos ordinateurs portables Go et que vous utilisez Windows, vous devez utiliser l'installation Docker et exécuter gophernotes/Jupyter dans Docker.
Téléchargez Gophernotes dans GOPATH, compilez-le et installez-le
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
Copiez la configuration du noyau :
mkdir %APPDATA%jupyterkernelsgophernotes
xcopy %GOPATH%srcgithub.comgopherdatagophernoteskernel %APPDATA%jupyterkernelsgophernotes /s
Notez que si la variable d'environnement JUPYTER_PATH
est définie ou si vous utilisez une ancienne version de Jupyter, vous devrez peut-être copier cette configuration du noyau dans un autre répertoire. Vous pouvez vérifier quels répertoires seront recherchés en exécutant :
jupyter --data-dir
Mettez à jour %APPDATA%jupyterkernelsgophernoteskernel.json
avec le CHEMIN COMPLET vers votre gophernotes.exe (généralement dans %GOPATH%bin). Par exemple:
{
"argv": [
"C:\gopath\bin\gophernotes.exe",
"{connection_file}"
],
"display_name": "Go",
"language": "go",
"name": "go"
}
Vous pouvez essayer ou exécuter Jupyter + gophernotes sans rien installer à l'aide de Docker. Pour exécuter un notebook Go qui n'a besoin que d'éléments de la bibliothèque standard, exécutez :
docker run -it -p 8888:8888 gopherdata/gophernotes
Ou pour exécuter un bloc-notes Go avec accès aux packages de science des données Go courants (gonum, gota, golearn, etc.), exécutez :
docker run -it -p 8888:8888 gopherdata/gophernotes:latest-ds
Dans les deux cas, l'exécution de cette commande devrait générer un lien que vous pouvez suivre pour accéder à Jupyter dans un navigateur. De plus, pour enregistrer des blocs-notes et/ou charger des blocs-notes à partir d'un emplacement en dehors de l'image Docker, vous devez utiliser un montage de volume. Par exemple:
docker run -it -p 8888:8888 -v /path/to/local/notebooks:/path/to/notebooks/in/docker gopherdata/gophernotes
Si vous avez effectué l'une des installations locales ci-dessus (c'est-à-dire pas l'installation de Docker), démarrez le serveur de notebook jupyter :
jupyter notebook
Sélectionnez Go
dans le menu déroulant New
.
Amusez-vous!
Lancez Interact.
Dans le menu Interact, sélectionnez Langue -> Aller.
Amusez-vous!
En plus du code Go, les commandes spéciales suivantes sont également prises en charge - elles doivent se trouver sur une ligne distincte :
gophernotes utilise gomacro sous le capot pour évaluer le code Go de manière interactive. Vous pouvez évaluer la plupart des codes Go avec gomacro, mais il existe certaines limitations, qui sont discutées plus en détail ici. Plus particulièrement, Gophernotes ne prend PAS en charge :
plugin
Go.De plus, la création de nouveaux types nommés est émulée et leurs méthodes ne sont visibles que par le code interprété.
En fonction de votre environnement, vous devrez peut-être modifier manuellement le chemin d'accès à l'exécutable gophernotes
dans kernel/kernel.json
avant de le copier dans ~/.local/share/jupyter/kernels/gophernotes
. Vous pouvez indiquer le chemin complet de l'exécutable gophernotes
ici, et vous ne devriez plus avoir de problèmes.
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
Arrêtez Jupyter, s'il est déjà en cours d'exécution.
Ajoutez un lien symbolique vers /go/bin/gophernotes
depuis votre chemin vers l'exécutable gophernotes. Si vous avez suivi les instructions ci-dessus, cela donnera :
sudo ln -s $HOME/go/bin/gophernotes /go/bin/gophernotes
Redémarrez Jupyter et vous devriez maintenant être opérationnel.
En première analyse, cela semble être une limitation du nouveau mécanisme d'importation qui prend en charge les modules Go. Vous pouvez désactiver l'ancien mécanisme (non compatible avec les modules) avec la commande %go111module off
Pour réactiver la prise en charge des modules, exécutez %go111module on
Afin de voir les journaux de votre notebook Jupyter, utilisez l'option --log-level
jupyter notebook --log-level DEBUG