gophernotes
عبارة عن نواة Go لدفاتر Jupyter والتفاعل. يتيح لك استخدام Go بشكل تفاعلي في تطبيق كمبيوتر محمول أو سطح مكتب يستند إلى المتصفح. استخدم gophernotes
لإنشاء ومشاركة المستندات التي تحتوي على كود Go المباشر والمعادلات والمرئيات والنص التوضيحي. يمكن بعد ذلك مشاركة دفاتر الملاحظات هذه، التي تحمل رمز Go المباشر، مع الآخرين عبر البريد الإلكتروني وDropbox وGitHub وJupyter Notebook Viewer. انطلق وقم بعلم البيانات أو أي شيء آخر مثير للاهتمام باستخدام دفاتر ملاحظات Go!
شكر وتقدير - يستخدم هذا المشروع مترجم Go المسمى gomacro تحت الغطاء لتقييم كود Go بشكل تفاعلي. تم تصميم شعار gophernotes بواسطة ماركوس أولسون الرائع وكان مستوحى من تصميم Go Gopher الأصلي لـ Renee French.
go install
).يجب أن تعمل التعليمات الواردة أدناه على نظامي Linux وFreeBSD.
الطريقة الأولى: التثبيت السريع كوحدة نمطية
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
الطريقة الثانية: التثبيت اليدوي من 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، فقد تحتاج إلى نسخ تكوين kernel هذا إلى دليل آخر. يمكنك التحقق من الأدلة التي سيتم البحث فيها عن طريق تنفيذ:
jupyter --data-dir
ملاحظة مهمة - يعتمد gomacro على حزمة plugin
عند استيراد مكتبات الطرف الثالث. تعمل هذه الحزمة بشكل موثوق على نظام التشغيل Mac OS X مع Go 1.10.2+ طالما أنك لم تقم أبدًا بتنفيذ strip gophernotes
الأوامر.
الطريقة الأولى: التثبيت السريع كوحدة نمطية
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
الطريقة الثانية: التثبيت اليدوي من 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، فقد تحتاج إلى نسخ تكوين kernel هذا إلى دليل آخر. يمكنك التحقق من الأدلة التي سيتم البحث فيها عن طريق تنفيذ:
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، فقد تحتاج إلى نسخ تكوين kernel هذا إلى دليل آخر. يمكنك التحقق من الأدلة التي سيتم البحث فيها عن طريق تنفيذ:
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 Notebook:
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، إذا كان قيد التشغيل بالفعل.
أضف رابطًا رمزيًا إلى /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