gophernotes
เป็นเคอร์เนล Go สำหรับโน้ตบุ๊ก Jupyter และโต้ตอบ ช่วยให้คุณใช้ Go แบบโต้ตอบในสมุดบันทึกหรือแอปเดสก์ท็อปที่ใช้เบราว์เซอร์ ใช้ gophernotes
เพื่อสร้างและแชร์เอกสารที่มีโค้ด Go สมการ การแสดงภาพ และข้อความอธิบายแบบสด สมุดบันทึกเหล่านี้ซึ่งมีโค้ด live Go สามารถแชร์กับผู้อื่นผ่านทางอีเมล, Dropbox, GitHub และ Jupyter Notebook Viewer ก้าวไปข้างหน้าและทำวิทยาศาสตร์ข้อมูลหรืออะไรก็ตามที่น่าสนใจด้วยสมุดบันทึก Go!
การรับทราบ - โปรเจ็กต์นี้ใช้ล่าม Go ที่เรียกว่า gomacro ภายใต้ประทุนเพื่อประเมินโค้ด Go แบบโต้ตอบ โลโก้ gophernotes ได้รับการออกแบบโดย Marcus Olsson ผู้ชาญฉลาด และได้รับแรงบันดาลใจจากการออกแบบ Go Gopher ดั้งเดิมของ Renee French
go install
)คำแนะนำด้านล่างนี้ควรใช้ได้ทั้งบน 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
เมื่อนำเข้าไลบรารีของบุคคลที่สาม แพ็คเกจนี้ทำงานได้อย่างน่าเชื่อถือบน Mac OS X ด้วย Go 1.10.2+ ตราบใดที่คุณ ไม่เคย รัน strip gophernotes
คำสั่ง
วิธีที่ 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 และรัน gophernotes/Jupyter ใน Docker
ดาวน์โหลด gophernotes ภายใน GOPATH คอมไพล์และติดตั้ง
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"
}
คุณสามารถลองใช้หรือรัน Jupyter + gophernotes โดยไม่ต้องติดตั้งอะไรโดยใช้ Docker หากต้องการเรียกใช้โน้ตบุ๊ก Go ที่ต้องการเฉพาะสิ่งต่าง ๆ จากไลบรารีมาตรฐาน ให้เรียกใช้:
docker run -it -p 8888:8888 gopherdata/gophernotes
หรือหากต้องการเรียกใช้สมุดบันทึก Go ที่สามารถเข้าถึงแพ็คเกจวิทยาศาสตร์ข้อมูล Go ทั่วไป (gonum, gota, golearn ฯลฯ) ให้เรียกใช้:
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
เลือก Go
จากเมนูแบบเลื่อนลง New
มีความสุข!
เปิดตัวโต้ตอบ
จากเมนูโต้ตอบ ให้เลือกภาษา -> ไป
มีความสุข!
นอกจากโค้ด Go แล้ว ยังรองรับคำสั่งพิเศษต่อไปนี้ด้วย โดยจะต้องอยู่ในบรรทัดด้วยตัวเอง:
gophernotes ใช้ gomacro ภายใต้ประทุนเพื่อประเมินโค้ด Go แบบโต้ตอบ คุณสามารถประเมินโค้ด Go ส่วนใหญ่ได้ด้วย gomacro แต่มีข้อจำกัดบางประการ ซึ่งจะกล่าวถึงในรายละเอียดเพิ่มเติมที่นี่ สิ่งที่โดดเด่นที่สุดคือ gophernotes ไม่รองรับ:
plugin
Goนอกจากนี้ การสร้างประเภทที่มีชื่อใหม่จะถูกจำลอง และวิธีการของพวกเขาจะมองเห็นได้เฉพาะกับโค้ดที่ตีความเท่านั้น
คุณอาจต้องเปลี่ยนเส้นทางไปยัง gophernotes
ที่สามารถเรียกใช้งานได้ใน kernel/kernel.json
ด้วยตนเองก่อนที่จะคัดลอกไปที่ ~/.local/share/jupyter/kernels/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 ถ้ามันทำงานอยู่แล้ว
เพิ่ม symlink ไปที่ /go/bin/gophernotes
จากเส้นทางของคุณไปยัง 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