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.
Ukuhambahamba
- Isicwangciso sokuhamba se-Orbital
- Ufakelo kunye noqwalaselo lwenkqubo esisiseko
- Ukufakela isoftware esisiseko kunye nokuseta inkqubo
- Ukufakela kunye nokuqwalasela iJupyterLab
- Ukwabelana ngedatha nomninimzi
- Molo Lizwe!
- Ukwandisa ubunakho bePython
- Iimodyuli zokuvavanya kwiJupyterLab
- Yintoni enye?
Isicwangciso sokuhamba se-Orbital ^
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-LXDexec
-Indlela yomthengi we-LXD esebenzisa umyalelo kwisingxobojupyterlab
- Isazisi sesikhongozeli--
- Iqhosha elikhethekileyo elichaza ukungatoliki amanye amaqhosha njengezitshixolxc
uze ugqithisele intambo eseleyo njengesityaapk
-Umphathi wepakethe yeAlpine Linuxadd
β 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 .bashrc
eyenziwa 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/incwadanajupyterlab-horizon-theme
β Umxholo we-UIjupyterlab_neon_theme
β Umxholo we-UIjupyterlab-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:
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 sesixhobojupyter
β I-ID yesikhongozeli apho ulungelelwaniso longezwehostfs
β I-ID yesixhobo. Ungaseta naliphi na igama.disk
β Uhlobo lwesixhobo lubonisiwepath
β Ixela indlela ekwisikhongozeli apho i-LXD iya kunyuswa khona esi sixhobosource
β 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:
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:
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:
- Jupyter Notebook - http://10.0.5.5:8888/tree
- ILab yeJupyter - http://10.0.5.5:8888/lab
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 zokubinifreetype-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:
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:
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