gophernotes
adalah kernel Go untuk notebook Jupyter dan nteract. Ini memungkinkan Anda menggunakan Go secara interaktif di buku catatan atau aplikasi desktop berbasis browser. Gunakan gophernotes
untuk membuat dan berbagi dokumen yang berisi kode Go langsung, persamaan, visualisasi, dan teks penjelasan. Buku catatan ini, dengan kode Go langsung, kemudian dapat dibagikan dengan orang lain melalui email, Dropbox, GitHub, dan Jupyter Notebook Viewer. Lakukan ilmu data, atau hal menarik lainnya, dengan buku catatan Go!
Ucapan Terima Kasih - Proyek ini menggunakan juru bahasa Go yang disebut gomacro untuk mengevaluasi kode Go secara interaktif. Logo gophernotes dirancang oleh Marcus Olsson yang brilian dan terinspirasi oleh desain Go Gopher asli Renee French.
go install
).Petunjuk di bawah ini dapat digunakan di Linux dan FreeBSD.
Metode 1: instalasi cepat sebagai modul
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
Metode 2: instalasi manual dari 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
Untuk mengonfirmasi bahwa biner gophernotes
telah terinstal di GOPATH, jalankan secara langsung:
" $( go env GOPATH ) " /bin/gophernotes
dan Anda akan melihat yang berikut:
2017/09/20 10:33:12 Need a command line argument specifying the connection file.
Catatan - jika Anda memiliki set variabel lingkungan JUPYTER_PATH
atau jika Anda menggunakan Jupyter versi lama, Anda mungkin perlu menyalin konfigurasi kernel ini ke direktori lain. Anda dapat memeriksa direktori mana yang akan dicari dengan menjalankan:
jupyter --data-dir
Catatan Penting - gomacro bergantung pada paket plugin
saat mengimpor perpustakaan pihak ketiga. Paket ini berfungsi dengan baik di Mac OS X dengan Go 1.10.2+ selama Anda tidak pernah menjalankan perintah strip gophernotes
.
Metode 1: instalasi cepat sebagai modul
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
Metode 2: instalasi manual dari 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
Untuk mengonfirmasi bahwa biner gophernotes
telah terinstal di GOPATH, jalankan secara langsung:
" $( go env GOPATH ) " /bin/gophernotes
dan Anda akan melihat yang berikut:
2017/09/20 10:33:12 Need a command line argument specifying the connection file.
Catatan - jika Anda memiliki set variabel lingkungan JUPYTER_PATH
atau jika Anda menggunakan Jupyter versi lama, Anda mungkin perlu menyalin konfigurasi kernel ini ke direktori lain. Anda dapat memeriksa direktori mana yang akan dicari dengan menjalankan:
jupyter --data-dir
Catatan Penting - gomacro bergantung pada paket plugin
saat mengimpor perpustakaan pihak ketiga. Paket ini hanya didukung di Linux dan Mac OS X saat ini. Jadi, jika Anda perlu menggunakan paket pihak ketiga di notebook Go Anda dan Anda menjalankannya di Windows, Anda harus menggunakan instalasi Docker dan menjalankan gophernotes/Jupyter di Docker.
Unduh gophernotes di dalam GOPATH, kompilasi dan instal
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
Salin konfigurasi kernel:
mkdir %APPDATA%jupyterkernelsgophernotes
xcopy %GOPATH%srcgithub.comgopherdatagophernoteskernel %APPDATA%jupyterkernelsgophernotes /s
Catatan, jika Anda memiliki set variabel lingkungan JUPYTER_PATH
atau jika Anda menggunakan Jupyter versi lama, Anda mungkin perlu menyalin konfigurasi kernel ini ke direktori lain. Anda dapat memeriksa direktori mana yang akan dicari dengan menjalankan:
jupyter --data-dir
Perbarui %APPDATA%jupyterkernelsgophernoteskernel.json
dengan PATH LENGKAP ke gophernotes.exe Anda (biasanya dalam %GOPATH%bin). Misalnya:
{
"argv": [
"C:\gopath\bin\gophernotes.exe",
"{connection_file}"
],
"display_name": "Go",
"language": "go",
"name": "go"
}
Anda dapat mencoba atau menjalankan Jupyter + gophernotes tanpa menginstal apa pun menggunakan Docker. Untuk menjalankan notebook Go yang hanya memerlukan sesuatu dari perpustakaan standar, jalankan:
docker run -it -p 8888:8888 gopherdata/gophernotes
Atau untuk menjalankan notebook Go dengan akses ke paket ilmu data Go yang umum (gonum, gota, golearn, dll.), jalankan:
docker run -it -p 8888:8888 gopherdata/gophernotes:latest-ds
Apa pun kasusnya, menjalankan perintah ini akan menghasilkan tautan yang dapat Anda ikuti untuk mengakses Jupyter di browser. Selain itu, untuk menyimpan buku catatan ke dan/atau memuat buku catatan dari lokasi di luar image Docker, Anda harus menggunakan pemasangan volume. Misalnya:
docker run -it -p 8888:8888 -v /path/to/local/notebooks:/path/to/notebooks/in/docker gopherdata/gophernotes
Jika Anda menyelesaikan salah satu instalasi lokal di atas (yaitu, bukan instalasi Docker), jalankan server notebook jupyter:
jupyter notebook
Pilih Go
dari menu tarik-turun New
.
Selamat bersenang-senang!
Luncurkan interaksi.
Dari menu interaksi pilih Bahasa -> Buka.
Selamat bersenang-senang!
Selain kode Go, perintah khusus berikut juga didukung - perintah tersebut harus berada pada satu baris sendiri:
gophernotes menggunakan gomacro untuk mengevaluasi kode Go secara interaktif. Anda dapat mengevaluasi hampir semua kode Go dengan gomacro, namun ada beberapa batasan, yang dibahas lebih rinci di sini. Terutama, gophernotes TIDAK mendukung:
plugin
Go saat ini.Selain itu, pembuatan tipe bernama baru ditiru, dan metodenya hanya terlihat oleh kode yang ditafsirkan.
Tergantung pada lingkungan Anda, Anda mungkin perlu mengubah jalur ke gophernotes
yang dapat dieksekusi secara manual di kernel/kernel.json
sebelum menyalinnya ke ~/.local/share/jupyter/kernels/gophernotes
. Anda dapat meletakkan path lengkap ke gophernotes
yang dapat dieksekusi di sini, dan Anda tidak akan mengalami masalah lebih lanjut.
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
Hentikan jupyter, jika sudah berjalan.
Tambahkan symlink ke /go/bin/gophernotes
dari jalur Anda ke gophernotes yang dapat dieksekusi. Jika Anda mengikuti petunjuk di atas, ini akan menjadi:
sudo ln -s $HOME/go/bin/gophernotes /go/bin/gophernotes
Mulai ulang jupyter, dan Anda sekarang sudah siap dan berjalan.
Pada analisis pertama, tampaknya ini merupakan keterbatasan mekanisme impor baru yang mendukung modul Go. Anda dapat mengganti mekanisme lama (tidak sadar modul) dengan perintah %go111module off
Untuk mengaktifkan kembali dukungan modul, jalankan %go111module on
Untuk melihat log notebook Jupyter Anda, gunakan opsi --log-level
jupyter notebook --log-level DEBUG