Kwethulwa i-Jupyter ku-LXD orbit

Kwake kwadingeka ukuthi uzame ngekhodi noma izinsiza zesistimu ku-Linux ukuze ungakhathazeki ngohlelo oluyisisekelo futhi ungabhidli yonke into uma kwenzeka kuba nephutha kukhodi okufanele isebenze ngamalungelo ezimpande?

Kodwa kuthiwani ngeqiniso lokuthi ake sithi udinga ukuhlola noma ukusebenzisa iqoqo lonke lama-microservices ahlukahlukene emshinini owodwa? Ikhulu noma inkulungwane?

Ngemishini ebonakalayo ephethwe yi-hypervisor, izinkinga ezinjalo zingaxazululwa futhi zizoxazululwa, kodwa yiziphi izindleko? Isibonelo, isiqukathi esiku-LXD esisekelwe ekusabalaliseni kwe-Alpine Linux sisebenzisa kuphela 7.60MB I-RAM, nalapho ukuhlukaniswa kwezimpande kuhlala khona ngemva kokuqala 9.5MB! Ukuthanda kanjani lokho, Elon Musk? Ngincoma ukuthi uhlole amakhono ayisisekelo we-LXD - isistimu yesiqukathi ku-Linux

Ngemva kokuba sekucace ngokujwayelekile ukuthi ziyini iziqukathi ze-LXD, ake siqhubekele phambili futhi sicabange, kuthiwani uma bekunenkundla yokuvuna enjalo lapho ungasebenzisa khona ikhodi ngokuphepha yomsingathi, ukhiqize amagrafu, uxhumanise ngokuguquguqukayo (ngokusebenzisana) amawijethi e-UI- nekhodi yakho, engeza ikhodi ngombhalo nge-blackjack... ukufometha? Uhlobo oluthile lwebhulogi esebenzisanayo? Hawu... ngiyayifuna! Ufuna! πŸ™‚

Bheka ngaphansi kwekati lapho sizokwethula khona esitsheni I-JupyterLab - isizukulwane esilandelayo sokusebenzisana komsebenzisi esikhundleni se-Jupyter Notebook ephelelwe yisikhathi, futhi sizofaka namamojula wePython afana I-NumPy, AmaPandas, I-Matplotlib, IPyWidgets okuzokuvumela ukuthi wenze konke okubalwe ngenhla futhi ukugcine konke kufayela elikhethekile - ilaptop ye-IPython.

Kwethulwa i-Jupyter ku-LXD orbit

Uhlelo lokuthatha uhambo lwe-Orbital ^

Kwethulwa i-Jupyter ku-LXD orbit

Ake siveze uhlelo olufushane lokwenza kube lula ngathi ukusebenzisa lolu hlelo olungenhla:

  • Masifake futhi siqalise isiqukathi esisekelwe kukhithi yokusabalalisa I-Alpine Linux. Sizosebenzisa lokhu kusatshalaliswa ngoba kuhloswe ku-minimalism futhi sizofaka isoftware edingekayo kuphela kuyo, akukho lutho olungadingekile.
  • Ake sengeze i-virtual disk eyengeziwe esitsheni futhi siyinikeze igama - hostfs bese uyikhweza ohlelweni lwefayela lempande. Le diski izokwenza kube nokwenzeka ukusebenzisa amafayela kumsingathi kusuka kuhla lwemibhalo olunikeziwe ngaphakathi kwesiqukathi. Ngakho, idatha yethu izobe izimele esitsheni. Uma isiqukathi sisusiwe, idatha izohlala kumsingathi. Futhi, lolu hlelo luwusizo ekwabelaneni ngedatha efanayo phakathi kweziqukathi eziningi ngaphandle kokusebenzisa izindlela ezijwayelekile zenethiwekhi zokusabalalisa iziqukathi.
  • Masifake i-Bash, i-sudo, imitapo yolwazi edingekayo, sengeze futhi silungiselele umsebenzisi wesistimu
  • Masifake i-Python, amamojula futhi sihlanganise ukuncika kanambambili kubo
  • Masifake futhi siqalise I-JupyterLab, hlela ukubukeka ngendlela oyifisayo, faka izandiso zakhona.

Kulesi sihloko sizoqala ngokwethula isitsha, ngeke sicabange ukufaka nokumisa i-LXD, ungathola konke lokhu kwesinye isihloko - Izici eziyisisekelo ze-LXD - amasistimu weziqukathi ze-Linux.

Ukufakwa nokucushwa kwesistimu eyisisekelo ^

Sakha isitsha esinomyalo lapho sicacisa khona isithombe - alpine3, inkomba yesiqukathi - jupyterlab futhi, uma kunesidingo, amaphrofayili wokumisa:

lxc init alpine3 jupyterlab --profile=default --profile=hddroot

Lapha ngisebenzisa iphrofayela yokumisa hddroot ecacisa ukudala isitsha esinempande yokuhlukanisa phakathi Ichibi Lokugcina itholakala kudiski ye-HDD ebonakalayo:

lxc profile show hddroot

config: {}
description: ""
devices:
  root:
    path: /
    pool: hddpool
    type: disk
name: hddroot
used_by: []
lxc storage show hddpool

config:
  size: 10GB
  source: /dev/loop1
  volatile.initial_source: /dev/loop1
description: ""
name: hddpool
driver: btrfs
used_by:
- /1.0/images/ebd565585223487526ddb3607f5156e875c15a89e21b61ef004132196da6a0a3
- /1.0/profiles/hddroot
status: Created
locations:
- none

Lokhu kunginika ithuba lokuhlola iziqukathi kudiski ye-HDD, ngigcina izinsiza zediski ye-SSD, etholakala futhi ohlelweni lwami πŸ™‚ engidale iphrofayili yokucushwa ehlukile. ssdroot.

Ngemuva kokuthi isiqukathi senziwe, sisesimweni STOPPED, ngakho-ke sidinga ukuyiqala ngokusebenzisa isistimu ye-init kuyo:

lxc start jupyterlab

Masibonise uhlu lweziqukathi ku-LXD sisebenzisa ukhiye -c okubonisa ukuthi columns display:

lxc list -c ns4b
+------------+---------+-------------------+--------------+
|    NAME    |  STATE  |       IPV4        | STORAGE POOL |
+------------+---------+-------------------+--------------+
| jupyterlab | RUNNING | 10.0.5.198 (eth0) | hddpool      |
+------------+---------+-------------------+--------------+

Lapho udala isiqukathi, ikheli le-IP likhethwe ngokungahleliwe, njengoba sisebenzise iphrofayela yokumisa default eyayilungiselelwe ngaphambilini esihlokweni Izici eziyisisekelo ze-LXD - amasistimu weziqukathi ze-Linux.

Sizoshintsha leli kheli lasesizindeni se-inthanethi libe ngelikhumbuleka kakhulu ngokwakha isixhumi esibonakalayo senethiwekhi ezingeni lesiqukathi, hhayi ezingeni lephrofayela yokucushwa njengoba lisekucushweni kwamanje. Akumele wenze lokhu, ungakweqa.

Idala isixhumi esibonakalayo senethiwekhi eth0 esiyixhuma ku-switch (ibhuloho lenethiwekhi) lxdbr0 lapho sinike khona amandla i-NAT ngokwendatshana edlule futhi isiqukathi sesizokwazi ukufinyelela ku-inthanethi, futhi sinikeza ikheli le-IP elimile kusixhumi esibonakalayo - 10.0.5.5:

lxc config device add jupyterlab eth0 nic name=eth0 nictype=bridged parent=lxdbr0 ipv4.address=10.0.5.5

Ngemva kokungeza idivayisi, isiqukathi kufanele siqaliswe kabusha:

lxc restart jupyterlab

Ihlola isimo sesiqukathi:

lxc list -c ns4b
+------------+---------+------------------+--------------+
|    NAME    |  STATE  |       IPV4       | STORAGE POOL |
+------------+---------+------------------+--------------+
| jupyterlab | RUNNING | 10.0.5.5 (eth0)  | hddpool      |
+------------+---------+------------------+--------------+

Ukufaka isofthiwe eyisisekelo nokusetha isistimu ^

Ukuze ulawule isiqukathi sethu, udinga ukufaka isofthiwe elandelayo:

Iphakheji
Incazelo

bash
Igobolondo le-GNU Bourne Again

bash-ukuqedwa
Ukuqedwa okuhlelekayo kwegobolondo le-bash

sudo
Nikeza abasebenzisi abathile amandla okusebenzisa imiyalo njengempande

Isithunzi
Iphasiwedi kanye nethuluzi lokuphatha i-akhawunti elinokusekelwa kwamafayela ethunzi kanye ne-PAM

tzdata
Imithombo yezoni yesikhathi nedatha yesikhathi yokonga emini

umfowethu omdala
I-Pico editor clone enezithuthukisi

Ukwengeza, ungafaka usekelo emakhasini omuntu wesistimu ngokufaka amaphakheji alandelayo βˆ’ man man-pages mdocml-apropos less

lxc exec jupyterlab -- apk add bash bash-completion sudo shadow tzdata nano

Ake sibheke imiyalo nezikhiye esizisebenzisile:

  • lxc - Shayela iklayenti le-LXD
  • exec - Indlela yeklayenti ye-LXD esebenzisa umyalo esitsheni
  • jupyterlab - I-ID yesitsha
  • -- - Ukhiye okhethekile ocacisa ukuthi akufanele utolike okhiye abengeziwe njengokhiye lxc bese wedlulisa yonke intambo njengoba injalo esitsheni
  • apk - Umphathi wephakheji wokusabalalisa we-Alpine Linux
  • add - Indlela yomphathi wephakheji efaka amaphakheji ashiwo ngemva komyalo

Okulandelayo, sizosetha izoni yesikhathi kusistimu Europe/Moscow:

lxc exec jupyterlab -- cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Ngemva kokufaka izoni yesikhathi, iphakheji tzdata ayisadingeki kusistimu, izothatha isikhala, ngakho-ke masiyisuse:

lxc exec jupyterlab -- apk del tzdata

Ihlola indawo yesikhathi:

lxc exec jupyterlab -- date

Wed Apr 15 10:49:56 MSK 2020

Ukuze ungachithi isikhathi esiningi usetha i-Bash yabasebenzisi abasha esitsheni, ezinyathelweni ezilandelayo sizokopisha amafayela e-skel enziwe ngomumo kusuka kuhlelo lokusingatha kuwo. Lokhu kuzokuvumela ukuthi wenze kahle i-Bash esitsheni ngokuxhumana. Isistimu yami yokusingathwa yi-Manjaro Linux futhi amafayela ayakopishwa /etc/skel/.bash_profile, /etc/skel/.bashrc, /etc/skel/.dir_colors empeleni zifanele i-Alpine Linux futhi azibangeli izinkinga ezibucayi, kodwa ungase ube nokusabalalisa okuhlukile futhi udinga ukuzimela ngokuzimela uma kukhona iphutha lapho usebenzisa i-Bash esitsheni.

Kopisha amafayela e-skel esitsheni. Ukhiye --create-dirs izodala izinkomba ezidingekayo uma zingekho:

lxc file push /etc/skel/.bash_profile jupyterlab/etc/skel/.bash_profile --create-dirs
lxc file push /etc/skel/.bashrc jupyterlab/etc/skel/.bashrc
lxc file push /etc/skel/.dir_colors jupyterlab/etc/skel/.dir_colors

Ngomsebenzisi wempande okhona, kopisha amafayela e-skel asanda kukopishwa esitsheni kuhla lwemibhalo lwasekhaya:

lxc exec jupyterlab -- cp /etc/skel/.bash_profile /root/.bash_profile
lxc exec jupyterlab -- cp /etc/skel/.bashrc /root/.bashrc
lxc exec jupyterlab -- cp /etc/skel/.dir_colors /root/.dir_colors

I-Alpine Linux ifaka igobolondo lesistimu labasebenzisi /bin/sh, sizofaka esikhundleni sayo root umsebenzisi ku-Bash:

lxc exec jupyterlab -- usermod --shell=/bin/bash root

ukuthi root umsebenzisi ubengenayo iphasiwedi, udinga ukusetha iphasiwedi. Umyalo olandelayo uzomkhiqizela futhi usethe iphasiwedi entsha engahleliwe, ozoyibona esikrinini sekhonsoli ngemuva kokukhishwa kwayo:

lxc exec jupyterlab -- /bin/bash -c "PASSWD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 12); echo "root:$PASSWD" | chpasswd && echo "New Password: $PASSWD""

New Password: sFiXEvBswuWA

Futhi, masidale umsebenzisi omusha wesistimu - jupyter esizoyilungiselela kamuva I-JupyterLab:

lxc exec jupyterlab -- useradd --create-home --shell=/bin/bash jupyter

Masiyikhiqizele futhi siyibekele iphasiwedi:

lxc exec jupyterlab -- /bin/bash -c "PASSWD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 12); echo "jupyter:$PASSWD" | chpasswd && echo "New Password: $PASSWD""

New Password: ZIcbzWrF8tki

Okulandelayo, sizokwenza imiyalo emibili, eyokuqala izodala iqembu lesistimu sudo, futhi eyesibili izongeza umsebenzisi kuyo jupyter:

lxc exec jupyterlab -- groupadd --system sudo
lxc exec jupyterlab -- groupmems --group sudo --add jupyter

Ake sibone ukuthi umsebenzisi ukuliphi iqembu jupyter:

lxc exec jupyterlab -- id -Gn jupyter

jupyter sudo

Konke kuhamba kahle, asiqhubeke.

Vumela bonke abasebenzisi abangamalungu eqembu sudo sebenzisa umyalo sudo. Ukuze wenze lokhu, sebenzisa iskripthi esilandelayo, lapho sed ikhulula umugqa wepharamitha kufayela lokumisa /etc/sudoers:

lxc exec jupyterlab -- /bin/bash -c "sed --in-place -e '/^#[ t]*%sudo[ t]*ALL=(ALL)[ t]*ALL$/ s/^[# ]*//' /etc/sudoers"

Ukufaka nokumisa i-JupyterLab ^

I-JupyterLab kuwuhlelo lwePython, ngakho-ke kufanele siqale sifake lo mhumushi. Futhi, I-JupyterLab sizofaka sisebenzisa umphathi wephakheji wePython pip, hhayi isistimu eyodwa, ngoba kungenzeka ukuthi isiphelelwe yisikhathi endaweni yesistimu ngakho-ke, kufanele sixazulule mathupha ukuncika kwayo ngokufaka amaphakheji alandelayo βˆ’ python3 python3-dev gcc libc-dev zeromq-dev:

lxc exec jupyterlab -- apk add python3 python3-dev gcc libc-dev zeromq-dev

Masibuyekeze amamojula we-python kanye nomphathi wephakheji pip enguqulweni yamanje:

lxc exec jupyterlab -- python3 -m pip install --upgrade pip setuptools wheel

Faka I-JupyterLab ngomphathi wephakheji pip:

lxc exec jupyterlab -- python3 -m pip install jupyterlab

Kusukela izandiso ku I-JupyterLab ziyahlolwa futhi azithunyelwa ngokusemthethweni nephakheji ye-jupyterlab, ngakho-ke kufanele siyifake futhi siyilungiselele mathupha.

Masifake i-NodeJS kanye nomphathi wephakheji wayo - NPM, kusukela lapho I-JupyterLab iwasebenzisela izandiso zawo:

lxc exec jupyterlab -- apk add nodejs npm

Kuzandiso ze I-JupyterLab esizoyifaka isebenzile, idinga ukufakwa kuhla lwemibhalo lomsebenzisi njengoba uhlelo lokusebenza luzokwethulwa kumsebenzisi jupyter. Inkinga ukuthi ayikho ipharamitha emyalweni wokuqalisa ongadluliselwa kuhla lwemibhalo; uhlelo lokusebenza lwamukela kuphela okuguquguqukayo kwemvelo ngakho-ke kufanele sikuchaze. Ukuze senze lokhu, sizobhala umyalo wokuthekelisa oguquguqukayo JUPYTERLAB_DIR endaweni yomsebenzisi jupyter, ukufayela .bashrcokwenziwa ngaso sonke isikhathi uma umsebenzisi engena:

lxc exec jupyterlab -- su -l jupyter -c "echo -e "nexport JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab" >> .bashrc"

Umyalo olandelayo uzofaka isandiso esikhethekile - umphathi wesandiso ku I-JupyterLab:

lxc exec jupyterlab -- su -l jupyter -c "export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab; jupyter labextension install --no-build @jupyter-widgets/jupyterlab-manager"

Manje konke sekumi ngomumo ngokwethulwa kokuqala I-JupyterLab, kodwa sisengakwazi ukufaka izandiso ezimbalwa eziwusizo:

  • toc - Uhlu Lokuphakathi, lakha uhlu lwezihloko ku-athikili/nothibhukwana
  • jupyterlab-horizon-theme - Itimu ye-UI
  • jupyterlab_neon_theme - Itimu ye-UI
  • jupyterlab-ubu-theme - Omunye itimu evela kumbhali lesi sihloko :) Kodwa kulokhu, ukufakwa okuvela endaweni yokugcina ye-GitHub kuzoboniswa

Ngakho-ke, sebenzisa imiyalo elandelayo ngokulandelana ukuze ufake lezi zandiso:

lxc exec jupyterlab -- su -l jupyter -c "export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab; jupyter labextension install --no-build @jupyterlab/toc @mohirio/jupyterlab-horizon-theme @yeebc/jupyterlab_neon_theme"
lxc exec jupyterlab -- su -l jupyter -c "wget -c https://github.com/microcoder/jupyterlab-ubu-theme/archive/master.zip"
lxc exec jupyterlab -- su -l jupyter -c "unzip -q master.zip && rm master.zip"
lxc exec jupyterlab -- su -l jupyter -c "export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab; jupyter labextension install --no-build jupyterlab-ubu-theme-master"
lxc exec jupyterlab -- su -l jupyter -c "rm -r jupyterlab-ubu-theme-master"

Ngemva kokufaka izandiso, kufanele sizihlanganise, kusukela ngaphambili, ngesikhathi sokufakwa, sacacisa ukhiye --no-build ukuze wonge isikhathi. Manje sizosheshisa kakhulu ngokuzihlanganisa ndawonye ngesikhathi esisodwa:

lxc exec jupyterlab -- su -l jupyter -c "export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab; jupyter lab build"

Manje sebenzisa imiyalo emibili elandelayo ukuze uyiqalise okokuqala I-JupyterLab. Kungenzeka ukuthi uyethule ngomyalo owodwa, kodwa kulokhu, umyalo wokuqalisa, okunzima ukuwukhumbula engqondweni yakho, uzokhunjulwa nge-bash esitsheni, hhayi kumsingathi, lapho sekuvele kunemiyalo eyanele. ukuze uziqophe emlandweni :)

Ngena ngemvume esitsheni njengomsebenzisi jupyter:

lxc exec jupyterlab -- su -l jupyter

Okulandelayo, gijima I-JupyterLab ngokhiye namapharamitha njengoba kukhonjisiwe:

[jupyter@jupyterlab ~]$ jupyter lab --ip=0.0.0.0 --no-browser

Yiya ekhelini elisesipheqululini sakho sewebhu http://10.0.5.5:8888 nasekhasini elivulayo faka Ithokheni ukufinyelela ozokubona kukhonsoli. Kopisha bese unamathisele ekhasini, bese uchofoza Ngena ngemvume. Ngemuva kokungena ngemvume, iya kumenyu yezandiso ngakwesobunxele, njengoba kukhonjisiwe esithombeni esingezansi, lapho uzocelwa khona, lapho uvula umphathi wesandiso, ukuthi uthathe ubungozi bokuphepha ngokufaka izandiso ezivela kubantu besithathu lapho umyalo Ukuthuthukiswa kwe-JupyterLab akanasibopho:

Kwethulwa i-Jupyter ku-LXD orbit

Nokho, sihlukanisa konke I-JupyterLab futhi uyibeke esitsheni ukuze izandiso zenkampani yangaphandle ezidinga futhi ezisebenzisa i-NodeJS zingakwazi okungenani ukweba idatha kudiski ngaphandle kwalezo esizivula ngaphakathi kwesiqukathi. Thola kumadokhumenti akho ayimfihlo kumsingathi ku /home izinqubo ezivela esitsheni mancane amathuba okuba ziphumelele, futhi uma zenza, udinga ukuba namalungelo kumafayela ohlelweni lomsingathi, njengoba sisebenzisa isitsha ngaphakathi. imodi engafanele. Ngokusekelwe kulolu lwazi, ungakwazi ukuhlola ubungozi bokufaka izandiso ku I-JupyterLab.

Dala amabhukumaka e-IPython (amakhasi ku I-JupyterLab) manje izokwakhiwa kuhla lwemibhalo lwasekhaya lomsebenzisi - /home/jupyter, kodwa izinhlelo zethu ziwukuhlukanisa idatha (ukwabelana) phakathi komsingathi nesiqukathi, ngakho-ke buyela kukhonsoli futhi umise I-JupyterLab ngokwenza i-hotkey - CTRL+C futhi ephendula y ngesicelo. Bese unqamula isikhathi sokusebenzisana somsebenzisi jupyter ukugcwalisa i-hotkey CTRL+D.

Ukwabelana ngedatha nomsingathi ^

Ukuze wabelane ngedatha nomsingathi, udinga ukudala idivayisi esitsheni esikuvumela ukuthi wenze lokhu futhi wenze lokhu, sebenzisa umyalo olandelayo lapho sicacisa khona okhiye abalandelayo:

  • lxc config device add β€” Umyalo wengeza ukucushwa kwedivayisi
  • jupyter - I-ID yesiqukathi okufakwe kuso ukucushwa
  • hostfs - I-ID yedivayisi. Ungasetha noma yiliphi igama.
  • disk β€” Uhlobo locingo luyakhonjiswa
  • path β€” Icacisa indlela esitsheni lapho i-LXD izokhweza khona lolu cingo
  • source - Cacisa umthombo, indlela eya ohlwini lwabasingathi ofuna ukwabelana ngalo nesiqukathi. Cacisa indlela ngokuvumelana nezintandokazi zakho
lxc config device add jupyterlab hostfs disk path=/mnt/hostfs source=/home/dv/projects/ipython-notebooks

Okwekhathalogi /home/dv/projects/ipython-notebooks imvume kufanele isethwe kumsebenzisi wesiqukathi okwamanje one-UID elingana nayo SubUID + UID, bheka isahluko Ukuphepha. Amalungelo Esiqukathi esihlokweni Izici eziyisisekelo ze-LXD - amasistimu weziqukathi ze-Linux.

Setha imvume kumsingathi, lapho umnikazi kuzoba umsebenzisi wesiqukathi jupyter, kanye nokuguquguquka $USER izocacisa umsebenzisi ophethe njengeqembu:

sudo chown 1001000:$USER /home/dv/projects/ipython-notebooks

Sawubona Mhlaba! ^

Uma useneseshini yekhonsoli evulekile esitsheni nge I-JupyterLab, bese uyiqalisa kabusha ngokhiye omusha --notebook-dir ngokusetha inani /mnt/hostfs njengendlela eya empandeni yamalaptops esitsheni sedivayisi esiyidalile esinyathelweni esedlule:

jupyter lab --ip=0.0.0.0 --no-browser --notebook-dir=/mnt/hostfs

Bese uya ekhasini http://10.0.5.5:8888 bese udala ikhompuyutha yakho ephathekayo yokuqala ngokuchofoza inkinobho ekhasini njengoba kukhonjisiwe esithombeni esingezansi:

Kwethulwa i-Jupyter ku-LXD orbit

Bese, ensimini ekhasini, faka ikhodi yePython ezobonisa yakudala Hello World!. Uma usuqedile ukufaka, cindezela CTRL+ENTER noma inkinobho ethi "dlala" kubha yamathuluzi phezulu ukuze iJupyterLab yenze lokhu:

Kwethulwa i-Jupyter ku-LXD orbit

Kuleli qophelo, cishe yonke into isilungele ukusetshenziswa, kodwa ngeke kube mnandi uma singafaki amamojula e-Python engeziwe (izinhlelo zokusebenza ezigcwele) ezingakhulisa kakhulu amandla ajwayelekile ePython ku. I-JupyterLab, ngakho-ke, asiqhubeke :)

PS Into ethokozisayo ukuthi ukuqaliswa okudala I-Jupyter ngaphansi kwegama lekhodi Incwadi kaJupyter ayihambanga futhi ikhona ngokuhambisana nayo I-JupyterLab. Ukuze ushintshele enguqulweni endala, landela isixhumanisi ungeze isijobelelo ekhelini/tree, futhi ukushintshela enguqulweni entsha kwenziwa ngesijobelelo /lab, kodwa akudingekile ukuba kucaciswe:

Ukwandisa amakhono ePython ^

Kulesi sigaba, sizofaka amamojula anamandla olimi lwePython njenge I-NumPy, AmaPandas, I-Matplotlib, IPyWidgets imiphumela ehlanganiswe kuma-laptops I-JupyterLab.

Ngaphambi kokufaka amamojula asohlwini lwePython ngokusebenzisa umphathi wephakheji pip kufanele siqale sixazulule ukuncika kwesistimu ku-Alpine Linux:

  • g++ - Kudingeka ekuhlanganiseni amamojula, njengoba amanye awo asetshenziswa ngolimi C ++ futhi uxhume kuPython ngesikhathi sokusebenza njengamamojula kanambambili
  • freetype-dev - ukuncika kwemojula yePython I-Matplotlib

Ukufaka okuncikile:

lxc exec jupyterlab -- apk add g++ freetype-dev

Kunenkinga eyodwa: esimweni samanje sokusatshalaliswa kwe-Alpine Linux, ngeke kwenzeke ukuhlanganisa inguqulo entsha ye-NumPy; kuzovela iphutha lokuhlanganisa engingakwazi ukulixazulula:

IPHUTHA: Ayikwazanga ukwakha amasondo e-numpy asebenzisa i-PEP 517 futhi ayikwazi ukufakwa ngokuqondile

Ngakho-ke, sizofaka le mojula njengephakheji yesistimu esabalalisa inguqulo esivele ihlanganisiwe, kodwa endala kancane kunaleyo etholakalayo kusayithi:

lxc exec jupyterlab -- apk add py3-numpy py3-numpy-dev

Okulandelayo, faka amamojula wePython ngokusebenzisa umphathi wephakheji pip. Sicela ubekezele njengoba amanye amamojula azohlanganiswa futhi angathatha amaminithi ambalwa. Emshinini wami, ukuhlanganiswa kuthathe ~ imizuzu eyi-15:

lxc exec jupyterlab -- python3 -m pip install pandas ipywidgets matplotlib

Isula izinqolobane zokufaka:

lxc exec jupyterlab -- rm -rf /home/*/.cache/pip/*
lxc exec jupyterlab -- rm -rf /root/.cache/pip/*

Amamojula okuhlola ku-JupyterLab ^

Uma ugijima I-JupyterLab, iqale kabusha ukuze amamojula asanda kufakwa enziwe asebenze. Ukuze wenze lokhu, esimisweni se-console, chofoza CTRL+C lapho ugijima khona bese ungena y ukumisa isicelo bese uqala futhi I-JupyterLab ngokucindezela umcibisholo oya phezulu kukhibhodi ukuze ungafaki umyalo futhi Enter ukuyiqala:

jupyter lab --ip=0.0.0.0 --no-browser --notebook-dir=/mnt/hostfs

Iya ekhasini http://10.0.5.5:8888/lab noma uvuselele ikhasi esipheqululini sakho, bese ufaka ikhodi elandelayo kuseli entsha yamanothi:

%matplotlib inline

from ipywidgets import interactive
import matplotlib.pyplot as plt
import numpy as np

def f(m, b):
    plt.figure(2)
    x = np.linspace(-10, 10, num=1000)
    plt.plot(x, m * x + b)
    plt.ylim(-5, 5)
    plt.show()

interactive_plot = interactive(f, m=(-2.0, 2.0), b=(-3, 3, 0.5))
output = interactive_plot.children[-1]
output.layout.height = '350px'
interactive_plot

Kufanele uthole umphumela njengasesithombeni esingezansi, kuphi IPyWidgets ikhiqiza into ye-UI ekhasini esebenzisana ngokuhlanganyela nekhodi yomthombo, futhi I-Matplotlib ibonisa umphumela wekhodi ngendlela yesithombe njengegrafu yomsebenzi:

Kwethulwa i-Jupyter ku-LXD orbit

Izibonelo eziningi IPyWidgets ungakuthola kokufundisa lapha

Yini enye? ^

Wenze kahle uma usale waze wafika ekugcineni kwesihloko. Angizange ngamabomu ngithumele iskripthi esenziwe ngomumo ekupheleni kwesihloko esizosifaka I-JupyterLab "ngokuchofoza okukodwa" ukuze ukhuthaze abasebenzi :) Kodwa ungakwenza ngokwakho, njengoba usuyazi ukuthi kanjani, usuqoqe imiyalo kuskripthi esisodwa se-Bash :)

Ungakwazi futhi:

  • Setha igama lenethiwekhi lesiqukathi esikhundleni sekheli le-IP ngokulibhala ngendlela elula /etc/hosts bese uthayipha ikheli esipheqululini http://jupyter.local:8888
  • Dlala ngomkhawulo wensiza yesiqukathi, ngalokhu funda isahluko ngaphakathi amakhono ayisisekelo we-LXD noma uthole ulwazi olwengeziwe kusayithi lonjiniyela we-LXD.
  • Shintsha itimu:

Kwethulwa i-Jupyter ku-LXD orbit

Futhi kuningi ongakwenza! Yilokho kuphela. Ngikufisela impumelelo!

NGAPHAKATHI: 15.04.2020/18/30 XNUMX:XNUMX - Amaphutha alungisiwe esahlukweni esithi β€œSawubona, Mhlaba!”
QAPHELA: 16.04.2020/10/00 XNUMX:XNUMX - Umbhalo olungisiwe futhi owengeziwe encazelweni yokusebenzisa umphathi wesandiso I-JupyterLab
NGAPHAKATHI: 16.04.2020/10/40 XNUMX:XNUMX - Amaphutha alungisiwe atholwe embhalweni futhi ashintshwa kancane ukuze abe ngcono isahluko esithi "Ukufaka isoftware eyisisekelo nokusetha uhlelo"

Source: www.habr.com

Engeza amazwana