Ukwazisa iJupyter kwi-LXD orbit

Ngaba ukhe wazama ikhowudi okanye izixhobo eziluncedo kwiLinux ukuze ungakhathazeki malunga nesiseko senkqubo kwaye ungachithi yonke into xa kukho impazamo kwikhowudi ekufuneka iqhube ngamalungelo eengcambu?

Kodwa kuthekani ngenyaniso yokuba kufuneka uvavanye okanye uqhube iqela elipheleleyo lee-microservices ezahlukeneyo kumatshini omnye? Ikhulu okanye iwaka?

Ngoomatshini benyani abalawulwa yi-hypervisor, ezo ngxaki zinokusonjululwa kwaye ziya kusonjululwa, kodwa ngeyiphi indleko? Umzekelo, isikhongozeli esikwi-LXD esekwe kunikezelo lweAlpine Linux sisebenzisa kuphela 7.60MB I-RAM, kwaye apho isahlulelo seengcambu sihlala khona emva kokuqalisa 9.5MB! Uyithanda njani loo nto, Elon Musk? Ndincoma ukujonga izakhono ezisisiseko ze-LXD - inkqubo yesikhongozeli kwiLinux

Emva kokuba kucacile ngokubanzi ukuba zeziphi izikhongozeli ze-LXD, masiqhube phambili kwaye sicinge, kuthekani ukuba bekukho iqonga lokuvuna apho unokuqhuba ngokukhuselekileyo ikhowudi yenginginya, uvelise iigrafu, ngokuguquguqukayo (ngokusebenzisana) ukudibanisa i-UI-widgets ngekhowudi yakho, yongeza ikhowudi ngokubhaliweyo ngeblackjack... ukufomatha? Uhlobo oluthile lweblogi esebenzisanayo? Wow... ndiyayifuna! Ufuna! πŸ™‚

Jonga phantsi kwekati apho siya kuqalisa kwisikhongozeli IJupyterLab -Isizukulwana esilandelayo sojongano lomsebenzisi endaweni yeJupyter Notebook yakudala, kwaye siya kufaka iimodyuli zePython ezifana INumPy, Iipandas, matplotlib, IPyWidgets eya kukuvumela ukuba wenze yonke into edweliswe ngasentla kwaye uyigcine yonke kwifayile ekhethekileyo - ilaptop ye-IPython.

Ukwazisa iJupyter kwi-LXD orbit

Isicwangciso sokuhamba se-Orbital ^

Ukwazisa iJupyter kwi-LXD orbit

Makhe sichaze isicwangciso esifutshane sokwenza ukuba kube lula kuthi ukuphumeza le nkqubo ingentla:

  • Masifake kwaye siqalise isikhongozeli esekwe kwikhithi yokuhambisa IAlpine Linux. Siza kusebenzisa olu lwabiwo kuba lujolise kwi-minimalism kwaye siya kufaka kuphela isoftware eyimfuneko kuyo, akukho nto ingaphezulu.
  • Makhe songeze idisk eyongezelelweyo kwisikhongozeli kwaye siyinike igama- hostfs kwaye uyinyuse kwindlela yefayile yengcambu. Le diski izakwenza kube nokwenzeka ukusebenzisa iifayile kumamkeli ukusuka kulawulo olunikiweyo ngaphakathi kwesikhongozeli. Ngaloo ndlela, idatha yethu iya kuzimela kwisitya. Ukuba isikhongozeli sicinyiwe, idatha iya kuhlala kumamkeli. Kwakhona, esi sikimu siluncedo ekwabelaneni ngedatha efanayo phakathi kwezikhongozeli ezininzi ngaphandle kokusebenzisa iindlela eziqhelekileyo zothungelwano losasazo lwesikhongozeli.
  • Masifake iBash, i-sudo, iilayibrari eziyimfuneko, yongeza kwaye siqwalasele umsebenzisi wenkqubo
  • Masifake iPython, iimodyuli kwaye siqulunqe ukuxhomekeka kokubini kubo
  • Masifake kwaye siqalise IJupyterLab, lungisa inkangeleko, fakela izandiso zayo.

Kweli nqaku siza kuqala ngokusungula isikhongozeli, asiyi kuqwalasela ukufakela kunye nokuqwalasela i-LXD, ungayifumana yonke le nto kwelinye inqaku - Iimpawu eziphambili ze-LXD - Iinkqubo zesikhongozeli zeLinux.

Ufakelo kunye noqwalaselo lwenkqubo esisiseko ^

Senza isitya kunye nomyalelo apho sichaza umfanekiso - alpine3, isazisi sesikhongozeli - jupyterlab kwaye, ukuba kuyimfuneko, iiprofayili zoqwalaselo:

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

Apha ndisebenzisa iprofayile yoqwalaselo hddroot exela ukwenza isikhongozeli esinesahlulelo sengcambu Idama lokuGcina ibekwe kwidiski 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

Oku kundinika ithuba lokuzama ngezikhongozeli kwidiski ye-HDD, ukugcina izixhobo zediski ye-SSD, ekwakhona kwindlela yam πŸ™‚ endiyidale ngayo iprofayile yoqwalaselo eyahlukileyo. ssdroot.

Emva kokuba isikhongozeli senziwe, sikwimo STOPPED, ke kufuneka siyiqale ngokuqhuba inkqubo ye-init kuyo:

lxc start jupyterlab

Masibonise uluhlu lwezikhongozeli kwi-LXD sisebenzisa isitshixo -c ebonisa ukuba yeyiphi cbonisa olumns:

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

Xa udala isitya, idilesi ye-IP ikhethwe ngokungaqhelekanga, ekubeni sisebenzise iprofayili yoqwalaselo default ebilungiselelwe ngaphambili kwinqaku Iimpawu eziphambili ze-LXD - Iinkqubo zesikhongozeli zeLinux.

Siza kutshintsha le dilesi ye-IP ibe yinto ekhumbulekayo ngakumbi ngokwenza ujongano lwenethiwekhi kwinqanaba lesikhongozeli, kwaye hayi kwinqanaba leprofayile yoqwalaselo njengoko ngoku kuqwalaselo lwangoku. Akunyanzelekanga ukuba uyenze le nto, ungayitsiba.

Ukudala ujongano lwenethiwekhi eth0 esidibanisa nokutshintsha (ibhulorho yenethiwekhi) lxdbr0 apho senze khona i-NAT ngokwenqaku elidlulileyo kwaye isikhongozeli ngoku siya kuba nokufikelela kwi-Intanethi, kwaye sikwabela idilesi ye-IP engatshintshiyo kujongano - 10.0.5.5:

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

Emva kokongeza isixhobo, isikhongozeli kufuneka siphinde siqaliswe:

lxc restart jupyterlab

Ukujonga ubume besikhongozeli:

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

Ukufakela isoftware esisiseko kunye nokuseta inkqubo ^

Ukulawula isikhongozeli sethu, kufuneka ufake isoftware elandelayo:

ipakethe
inkcazelo

ukutshatyalaliswa
Iqokobhe le-GNU Bourne Kwakhona

bash-ukugqitywa
Ukugqitywa okucwangcisiweyo kweqokobhe le-bash

sudo
Nika abasebenzisi abathile amandla okuqhuba eminye imiyalelo njengengcambu

isithunzi
Igama eligqithisiweyo kunye nesixhobo solawulo lweakhawunti kunye nenkxaso yeefayile zomthunzi kunye nePAM

tzdata
Imithombo yexesha lendawo kunye nedatha yexesha lokugcina imini

nano
I-Pico yomhleli we Clone enezixhasi

Ukongeza, ungafaka inkxaso kwisixokelelwano samaphepha omntu ngokuhlohla le mpahla ilandelayo βˆ’ man man-pages mdocml-apropos less

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

Makhe sijonge imiyalelo kunye nezitshixo esizisebenzisileyo:

  • lxc β€” Fowunela umxhasi we-LXD
  • exec -Indlela yomthengi we-LXD esebenzisa umyalelo kwisingxobo
  • jupyterlab - Isazisi sesikhongozeli
  • -- - Iqhosha elikhethekileyo elichaza ukungatoliki amanye amaqhosha njengezitshixo lxc uze ugqithisele intambo eseleyo njengesitya
  • apk -Umphathi wepakethe yeAlpine Linux
  • add β€” Indlela yomphathi wephakheji efaka iipakethe ezichazwe emva komyalelo

Okulandelayo, siya kumisela indawo yexesha kwisistim Europe/Moscow:

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

Emva kokufaka indawo yexesha, ipakethe tzdata ayisafuneki kwinkqubo, izakuthatha indawo, ke masiyicime:

lxc exec jupyterlab -- apk del tzdata

Ukujonga indawo yexesha:

lxc exec jupyterlab -- date

Wed Apr 15 10:49:56 MSK 2020

Ukuze ungachithi ixesha elininzi lokuseta i-Bash kubasebenzisi abatsha kwisitya, kula manyathelo alandelayo siya kukopisha iifayile ze-skel esele zenziwe kwi-host system ukuya kuyo. Oku kuya kukuvumela ukuba wenze iBash ibentle kwisikhongozeli ngokudibana. Inkqubo yam yokusingatha yiManjaro Linux kwaye iifayile ziyakotshwa /etc/skel/.bash_profile, /etc/skel/.bashrc, /etc/skel/.dir_colors ngokomgaqo zifanelekile kwiAlpine Linux kwaye azibangeli iingxaki ezinzima, kodwa unokuba nosasazo olwahlukileyo kwaye kufuneka ucinge ngokuzimeleyo ukuba kukho impazamo xa usebenzisa iBash kwisikhongozeli.

Khuphela iifayile ze-skel kwisitya. Isitshixo --create-dirs iyakwenza abalawuli abayimfuneko ukuba abekho:

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

Kumsebenzisi okhoyo weengcambu, khuphela iifayile zeskel ezikhutshelwe kwisikhongozeli kulawulo 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

IAlpine Linux ifakela iqokobhe lenkqubo kubasebenzisi /bin/sh, siya kuyibuyisela endaweni yayo root Umsebenzisi kwi-Bash:

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

ukuba root umsebenzisi wayengenalo igama lokugqitha, ufuna ukuseta igama lokugqitha. Lo myalelo ulandelayo uya kwenza kwaye usete igama eligqithisiweyo elitsha elingakhethiyo kuye, oya kuyibona kwisikrini se-console emva kokuphunyezwa 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

Kwakhona, masenze umsebenzisi wenkqubo entsha - jupyter esiza kuyiqwalasela kamva IJupyterLab:

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

Masiyivelise kwaye siyisete igama lokugqitha:

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, siya kwenza imiyalelo emibini, eyokuqala iya kudala iqela lenkqubo sudo, kwaye eyesibini iyakongeza umsebenzisi kuyo jupyter:

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

Makhe sibone ukuba ngawaphi amaqela abasebenzisi jupyter:

lxc exec jupyterlab -- id -Gn jupyter

jupyter sudo

Yonke into ilungile, masiqhubeke.

Vumela bonke abasebenzisi abangamalungu eqela sudo sebenzisa umyalelo sudo. Ukwenza oku, sebenzisa iskripthi esilandelayo, apho sed uncomments umgca weparameter kwifayile yoqwalaselo /etc/sudoers:

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

Ukufakela kunye nokuqwalasela iJupyterLab ^

IJupyterLab sisicelo sePython, ngoko ke kufuneka siqale sifake le toliki. Kwakhona, IJupyterLab siya kufaka usebenzisa umphathi wephakheji yePython pip, kwaye ingeyiyo inkqubo enye, kuba inokuba iphelelwe lixesha kwindawo yogcino lwenkqubo kwaye ke ngoko, kufuneka sisombulule ukuxhomekeka kwayo ngesandla ngokufaka ezi mpahla zilandelayo βˆ’ python3 python3-dev gcc libc-dev zeromq-dev:

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

Masihlaziye iimodyuli zepython kunye nomphathi wephakheji pip kuguqulelo lwangoku:

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

Faka ifayile IJupyterLab ngokusebenzisa umphathi wepakethe pip:

lxc exec jupyterlab -- python3 -m pip install jupyterlab

Ekubeni izandiso kwi IJupyterLab ziyavavanywa kwaye azithunyelwa ngokusemthethweni kunye nephakheji yejupyterlab, ke kufuneka siyifake kwaye siyiqwalasele ngesandla.

Masifake i-NodeJS kunye nomphathi wephakheji yayo-NPM, ukusukela IJupyterLab iwasebenzisela izandiso zayo:

lxc exec jupyterlab -- apk add nodejs npm

Kwizandiso ze IJupyterLab esiya kuthi siyifake isebenze, kufuneka ifakwe kulawulo lomsebenzisi ukusukela oko isicelo siyakusungulwa kumsebenzisi jupyter. Ingxaki kukuba akukho parameter kumyalelo wokuqaliswa onokugqithiselwa kulawulo; isicelo samkela kuphela ukuguquguquka kwemekobume kwaye ke kufuneka siyichaze. Ukwenza oku, siya kubhala umyalelo wokuthumela ngaphandle JUPYTERLAB_DIR kwindawo yomsebenzisi jupyter, kwifayile .bashrceyenziwa ngalo lonke ixesha umsebenzisi engena:

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

Umyalelo olandelayo uya kufaka ulwandiso olukhethekileyo - umphathi wolwandiso ngaphakathi IJupyterLab:

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

Ngoku yonke into ilungele ukuqaliswa kokuqala IJupyterLab, kodwa sisenako ukufaka izongezo ezimbalwa eziluncedo:

  • toc β€” Uluhlu lweziqulatho, luvelisa uluhlu lwezihloko kwinqaku/incwadana
  • jupyterlab-horizon-theme β€” Umxholo we-UI
  • jupyterlab_neon_theme β€” Umxholo we-UI
  • jupyterlab-ubu-theme - Enye kwakhona umxholo ovela kumbhali eli nqaku :) Kodwa kule meko, ukufakela ukusuka kwindawo yokugcina yeGitHub kuya kuboniswa

Ke, sebenzisa le miyalelo ilandelayo ngokulandelelana ukufaka ezi 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"

Emva kokufaka izandiso, kufuneka sizihlanganise, ekubeni ngaphambili, ngexesha lofakelo, sichaze isitshixo --no-build ukugcina ixesha. Ngoku siza kukhawulezisa kakhulu ngokuzihlanganisa kunye ngexesha elinye:

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

Ngoku sebenzisa le miyalelo mibini ilandelayo ukuyiqhuba okokuqala IJupyterLab. Kunokwenzeka ukuba uyiqalise ngomyalelo omnye, kodwa kulo mzekelo, umyalelo wokuqalisa, ekunzima ukuwukhumbula engqondweni yakho, uya kukhunjulwa nge-bash kwisitya, kwaye kungekhona kwi-host host, apho sele kukho imiyalelo eyaneleyo. ukuzirekhoda kwimbali :)

Ngena kwisikhongozeli njengomsebenzisi jupyter:

lxc exec jupyterlab -- su -l jupyter

Okulandelayo, baleka IJupyterLab ngezitshixo kunye neeparameters njengoko kubonisiwe:

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

Yiya kwidilesi kwibhrawuza yakho yewebhu http://10.0.5.5:8888 kwaye kwiphepha elivulayo faka uphawu ukufikelela oya kubona kwi-console. Khuphela kwaye uyincamathisele kwiphepha, emva koko ucofe Ngema. Emva kokungena, yiya kwimenyu yokwandisa ekhohlo, njengoko kubonisiwe kumzobo ongezantsi, apho uya kukhuthazwa, xa uvula umphathi wokwandisa, ukuthatha umngcipheko wokhuseleko ngokufaka izandiso ezivela kwiqela lesithathu apho umyalelo Uphuhliso lweJupyterLab akanaxanduva:

Ukwazisa iJupyter kwi-LXD orbit

Nangona kunjalo, sihlukanisa yonke into IJupyterLab kwaye uyibeke kwisikhongozeli ukwenzela ukuba izandiso zomntu wesithathu ezifuna kwaye zisebenzise i-NodeJS zingenako ubuncinci bedatha kwidiski ngaphandle kwezo sizivula ngaphakathi kwesikhongozeli. Fumana kumaxwebhu akho abucala kumamkeli /home iinkqubo ezisuka kwisikhongozeli akunakwenzeka ukuba ziphumelele, kwaye ukuba ziyenzeka, kufuneka ube namalungelo kwiifayile kwindlela yokusingatha, kuba siqhuba isikhongozeli kwi. imowudi engenalungelo. Ngokusekwe kolu lwazi, unokuvavanya umngcipheko wokubandakanya izandiso kwi IJupyterLab.

Yenziwe iincwadana zamanqaku ze-IPython (amaphepha kwi IJupyterLab) ngoku izakwenziwa kulawulo lwasekhaya lomsebenzisi - /home/jupyter, kodwa izicwangciso zethu kukwahlula idatha (isabelo) phakathi komninimzi kunye nesikhongozeli, ngoko ke buyela kwi-console kwaye uyeke. IJupyterLab ngokwenza ihotkey - CTRL+C kwaye ephendula y ngesicelo. Emva koko rhoxisa iseshoni yokunxibelelana yomsebenzisi jupyter ukugqiba ihotkey CTRL+D.

Ukwabelana ngedatha nomninimzi ^

Ukwabelana ngedatha kunye nomninimzi, kufuneka wenze isixhobo kwisitya esikuvumela ukuba wenze oku kwaye wenze oku, sebenzisa lo myalelo ulandelayo apho sichaza ezi zitshixo zilandelayo:

  • lxc config device add β€” Umyalelo wongeza isimo sesixhobo
  • jupyter β€” I-ID yesikhongozeli apho ulungelelwaniso longezwe
  • hostfs β€” I-ID yesixhobo. Ungaseta naliphi na igama.
  • disk β€” Uhlobo lwesixhobo lubonisiwe
  • path β€” Ixela indlela ekwisikhongozeli apho i-LXD iya kunyuswa khona esi sixhobo
  • source β€” Cacisa umthombo, indlela eya kuluhlu kumamkeli ofuna ukwabelana ngawo nesingxobo. Chaza umendo ngokokhetho lwakho
lxc config device add jupyterlab hostfs disk path=/mnt/hostfs source=/home/dv/projects/ipython-notebooks

Kwikhathalogu /home/dv/projects/ipython-notebooks imvume mayimiselwe kumsebenzisi wesingxobo ngoku one-UID elingana ne SubUID + UID, bona isahluko Ukhuseleko. Amalungelo oMgqomo kwinqaku Iimpawu eziphambili ze-LXD - Iinkqubo zesikhongozeli zeLinux.

Seta imvume kumamkeli, apho umnini aya kuba ngumsebenzisi wesingxobo jupyter, kunye nokuguquguquka $USER izakuchaza umsebenzisi wakho umamkeli njengeqela:

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

Molo Lizwe! ^

Ukuba usenayo iseshini ye-console vula kwisikhongozeli nge IJupyterLab, emva koko uyiqalise kwakhona ngeqhosha elitsha --notebook-dir ngokucwangcisa ixabiso /mnt/hostfs njengendlela eya kwingcambu yeelaptops kwisikhongozeli sesixhobo esenze kwinyathelo elidlulileyo:

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

Emva koko yiya kwiphepha http://10.0.5.5:8888 kwaye wenze ilaptop yakho yokuqala ngokucofa iqhosha kwiphepha njengoko kubonisiwe kumfanekiso ongezantsi:

Ukwazisa iJupyter kwi-LXD orbit

Emva koko, kwintsimi ekwiphepha, faka ikhowudi yePython eya kubonisa iklasikhi Hello World!. Wakugqiba ukungena, cofa CTRL+ENTER okanye iqhosha elithi "dlala" kwibar yesixhobo phezulu ukuze iJupyterLab yenze oku:

Ukwazisa iJupyter kwi-LXD orbit

Okwangoku, phantse yonke into ilungele ukusetyenziswa, kodwa ayiyi kuba nomdla ukuba asifaki iimodyuli ezongezelelweyo zePython (izicelo ezigcweleyo) ezinokwandisa kakhulu umgangatho wePython IJupyterLab, ke, masiqhubeke :)

PS Into enomdla kukuba ukuphunyezwa kwakudala ijupyter phantsi kwegama lekhowudi Incwadana yokubhalela kaJupyter ayihambanga kwaye ikhona ngokuhambelanayo IJupyterLab. Ukutshintshela kuguqulelo oludala, landela ikhonkco wongeza isimamva kwidilesi/tree, kwaye ukutshintshela kuguqulelo olutsha kuqhutywa kunye nesimamva /lab, kodwa akunyanzelekanga ukuba ichazwe:

Ukwandisa ubunakho bePython ^

Kweli candelo, siya kufaka iimodyuli zolwimi zePython ezinamandla njenge INumPy, Iipandas, matplotlib, IPyWidgets iziphumo ezidityaniswe kwiilaptops IJupyterLab.

Ngaphambi kokufaka iimodyuli ezidwelisiweyo zePython ngokusebenzisa umphathi wephakheji pip kufuneka siqale sisombulule ukuxhomekeka kwenkqubo kwiAlpine Linux:

  • g++ β€” Kuyafuneka ekuqulunqeni iimodyuli, kuba ezinye zazo ziphunyezwa ngolwimi C ++ kwaye uqhagamshele kwiPython ngexesha lokusebenza njengemodyuli zokubini
  • freetype-dev -ukuxhomekeka kwimodyuli yePython matplotlib

Ukuhlohla okuxhomekeke:

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

Kukho ingxaki enye: kwimeko yangoku yonikezelo lweAlpine Linux, ayizukwenzeka ukuqulunqa uguqulelo olutsha lweNumPy; impazamo yoqulunqo iya kuvela endingenako ukuyisombulula:

Imposiso: Ayikwazanga ukwakha amavili e-numpy asebenzisa i-PEP 517 kwaye ayinakufakwa ngokuthe ngqo

Ke ngoko, siya kufaka le modyuli njengepakethe yenkqubo ehambisa inguqulelo esele iqulunqiwe, kodwa indala kancinane kunento ekhoyo ngoku kwisiza:

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

Emva koko, faka iimodyuli zePython ngokusebenzisa umphathi wephakheji pip. Nceda ube nomonde njengoko ezinye iimodyuli ziya kuqulunqa kwaye zinokuthatha imizuzu embalwa. Kumatshini wam, ukuhlanganiswa kuthathe ~imizuzu eli-15:

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

Ukucoca iicache zokufakela:

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

Iimodyuli zokuvavanya kwiJupyterLab ^

Ukuba uyabaleka IJupyterLab, yiqale kwakhona ukuze iminqongo esanda kufakwa isebenze. Ukwenza oku, kwiseshoni ye-console, cofa CTRL+C apho uqhuba khona kwaye ungene y ukumisa isicelo kwaye emva koko uqale kwakhona IJupyterLab ngokucinezela utolo oluphezulu kwibhodi yezitshixo ukuze ungafaki umyalelo kwakhona kwaye emva koko Enter ukuyiqala:

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

Yiya kwiphepha http://10.0.5.5:8888/lab okanye uvuselele iphepha kwisikhangeli sakho, kwaye emva koko ufake ikhowudi elandelayo kwiseli entsha yamanqaku:

%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

Kuya kufuneka ufumane isiphumo njengakumfanekiso ongezantsi, apho IPyWidgets yenza i UI element kwiphepha elisebenzisanayo ngekhowudi yemvelaphi, kwaye ngokunjalo matplotlib ibonisa isiphumo sekhowudi kwimo yomfanekiso njengegrafu yomsebenzi:

Ukwazisa iJupyter kwi-LXD orbit

Imizekelo emininzi IPyWidgets ungayifumana kwii-tutorials apha

Yintoni enye? ^

Wenze kakuhle ukuba uhlale kwaye ufikelele esiphelweni senqaku. Andizange ndithumele ngamabomu iskripthi esenziwe eselenziwe ekupheleni kwenqaku eliza kufaka IJupyterLab ku "cofa kanye" ukukhuthaza abasebenzi :) Kodwa ungayenza ngokwakho, kuba sele uyazi ukuba njani, uqokelele imiyalelo kwisikripthi esinye seBash :)

Unako kwakhona:

  • Cwangcisa igama lothungelwano lwesikhongozeli endaweni yedilesi ye-IP ngokubhala ngendlela elula /etc/hosts kwaye uchwetheze idilesi kwisikhangeli http://jupyter.local:8888
  • Dlala malunga nomda wemithombo yesikhongozeli, oku funda isahluko kuyo izakhono ezisisiseko ze-LXD okanye ufumane ulwazi oluthe kratya kwisiza somphuhlisi we-LXD.
  • Guqula umxholo:

Ukwazisa iJupyter kwi-LXD orbit

Kwaye kuninzi onokukwenza! Kuko konke. Ndikunqwenelela impumelelo!

UHLAZIYO: 15.04.2020/18/30 XNUMX:XNUMX -Kulungiswe iimpazamo kwisahluko esithi "Molo, Hlabathi!"
UHLAZIYO: 16.04.2020/10/00 XNUMX:XNUMX - Isicatshulwa esilungisiweyo kwaye esongeziweyo kwinkcazo yokusebenza komphathi wokongezwa IJupyterLab
UHLAZIYO: 16.04.2020/10/40 XNUMX:XNUMX - Iimpazamo ezilungisiweyo ezifunyenwe kwisicatshulwa kwaye zitshintshe kancinci ukuze zibe ngcono isahluko "Ukufaka isoftware esisiseko kunye nokuseta inkqubo"

umthombo: www.habr.com

Yongeza izimvo