Kas oled katsetanud koodi vĂ”i sĂŒsteemi utiliite Linuxis viisil, et mitte karta pĂ”hiosade purunemist ja mitte hĂ€vitada kĂ”ike, kui kood, mis peaks kĂ€ivituma, on root-privileegidega?
Ent kuidas on selle kahtluse korral, et nĂ€iteks on vaja testida vĂ”i kĂ€ivitada terve klaster erinevaid mikroteenuseid ĂŒhel masinal? Sadakond vĂ”i isegi tuhat?
HĂŒperviisori haldustel on virtuaalmasinate kaudu selliseid ĂŒlesandeid vĂ”imalik tĂ€ita, kuid mis hinnaga? NĂ€iteks LXD konteiner Alpine Linuxâi jaotuses tarbib minimaalselt vaid 7.60MB RAM-i, ja kusjuures juurepartitsioon pĂ€rast kĂ€ivitamist hĂ”ivab 9.5MB! Kuidas sulle selline idee meeldib, Elon Musk? Soovitan tutvuda LXD pĂ”hivĂ”imalustega â konteinerite sĂŒsteem Linuxis.
Kui ĂŒldiselt on selge, mis on LXD konteinerid, liigume edasi ja mĂ”tleme, mis siis, kui oleks olemas selline platvorm-kombain, kus saaks ohutult kĂ€ivitada hosti jaoks koodi, genereerida graafikuid, dĂŒnaamiliselt (interaktiivselt) siduda UI-vidinaid oma koodiga, tĂ€iendada koodi tekstiga mustade kasino⊠vormindamisega? Midagi nagu interaktiivne blogi? Vau⊠Tahaks! Tahaks! đ
Vaata allpool, kus me kĂ€ivitame konteineris JupyterLab â jĂ€rgmise pĂ”lvkonna kasutajaliidese, mis asendab vananenud Jupyter Notebook'i, ning paigaldame ka sellised Python'i moodulid nagu NumPy, Pandas, Matplotlib, IPyWidgets mis vĂ”imaldavad teha kĂ”ike ĂŒlaltoodut ja salvestada selle kĂ”ik spetsiaalsesse faili â IPython'i mĂ€rkmikus.

Navigeerimine
- Orbitaalne tÔusuplaan
- AlgsĂŒsteemi paigaldamine ja seadistamine
- Baassofti paigaldamine ja seadistamine
- JupyterLab'i paigaldamine ja seadistamine
- Andmete jagamine hostiga
- Tere, maailm!
- Python'i vÔimaluste laiendamine
- Moodulite testimine JupyterLab'is
- Mis veel?
Orbitaalne tÔusuplaan ^

Koostame lĂŒhikese tegevusplaani, et meil oleks lihtsam ĂŒlaltoodud skeemi teostada:
- Paigaldame ja kĂ€ivitame konteineri Alpine Linux'i jaotusel Alpine Linux. Kasutame seda jaotust, kuna see on suunatud minimalismile ja paigaldame sinna ainult kĂ”ige vajalikuma tarkvara, mitte midagi ĂŒleliigset.
- Lisame konteiners ĂŒhe tĂ€iendava virtuaalse kĂ”vaketta, millele anname nime â
hostfsja paigaldame selle juurdete vĂ€itĂ€le. See ketas annab vĂ”imaluse kasutada faile hostis antud kataloogist konteineris. Sellega on meie andmed konteinerist sĂ”ltumatud. Kui konteiner eemaldatakse, jÀÀvad andmed hostisse. Samuti on see skeem kasulik, et jagada andmeid mitme konteineri vahel, kasutamata konteineri vĂ€ljastpoolne vĂ”rgu mehhanisme. - Paigaldame Bash'i, sudo, vajalikke teeke, lisame ja seadistame sĂŒsteemikasutaja.
- Paigaldame Python'i, moodulid ja kompileerime nende jaoks binaarset sÔltuvust.
- Paigaldame ja kÀivitame. JupyterLab, seadistame vÀlimust, paigaldame laiendusi selle jaoks.
Selles artiklis alustame konteineri kĂ€ivitamisest, me ei kĂ€sitle LXD seadistamist ja paigaldamist, seda vĂ”ite leida teises artiklis - LXD pĂ”hifunktsioonid â konteinerisĂŒsteem Linuxis.
AlgsĂŒsteemi paigaldamine ja seadistamine ^
Loome konteineri kÀsuga, kus mÀÀrame pildi - alpine3, konteineri ID - jupyterlab ja vajadusel konfiguratsiooniprofiilid:
lxc init alpine3 jupyterlab --profile=default --profile=hddrootSiin kasutan konfiguratsiooniprofiili hddroot mis nĂ€itab, et konteiner luuakse root-partitsiooniga SĂ€ilitustorn mis asub fĂŒĂŒsilisel HDD kettal:
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:
- noneSee annab mulle vĂ”imaluse katsetada konteineri HDD kettal, sÀÀstes SSD ketta ressursse, mis samuti minu sĂŒsteemis on đ, mille jaoks mul on loodud eraldi konfiguratsiooniprofiil. ssdroot.
PĂ€rast konteineri loomist on see seisundis STOPPIND, seega peame selle kĂ€ivitama, kolmendades initsĂŒsteemi:
lxc start jupyterlabKuvame LXD konteinerite nimekirja, kasutades vÔtme -c mis mÀÀrab, millised cveergud kuvada ekraanile:
lxc list -c ns4b
+------------+---------+-------------------+--------------+
| NAME | STATE | IPV4 | STORAGE POOL |
+------------+---------+-------------------+--------------+
| jupyterlab | RUNNING | 10.0.5.198 (eth0) | hddpool |
+------------+---------+-------------------+--------------+Konteineri loomisel valiti IP aadress juhuslikult, kuna kasutasime konfiguratsiooniprofiili SeejĂ€rel kĂ€ivitame exec kĂ€su ja ootame 5000 sekundit, et jĂ€tkata jĂ€lgimist: mis oli eelnevalt seadistatud artiklis LXD pĂ”hifunktsioonid â konteinerisĂŒsteem Linuxis.
Muudame selle IP aadressi kergemini meeldejÀÀvaks, luues vÔrgu liidese konteineri tasemel, mitte konfiguratsiooniprofiili tasemel nagu see praeguses konfiguratsioonis on. See ei ole tingimata vajalik, saate selle vahele jÀtta.
Loome vĂ”rgu liidese eth0 mille ĂŒhendame lĂŒlitiga (vĂ”rgusilla) lxdbr0 kus me lubasime NAT eelnevas artiklis ja konteineril on nĂŒĂŒd juurdepÀÀs internetile, samuti mÀÀrame liidesele staatilise IP aadressi â 10.0.5.5:
lxc config device add jupyterlab eth0 nic name=eth0 nictype=bridged parent=lxdbr0 ipv4.address=10.0.5.5PÀrast seadme lisamist tuleb konteiner taaskÀivitada:
lxc restart jupyterlabKontrollime konteineri staatust:
lxc list -c ns4b
+------------+---------+------------------+--------------+
| NAME | STATE | IPV4 | STORAGE POOL |
+------------+---------+------------------+--------------+
| jupyterlab | RUNNING | 10.0.5.5 (eth0) | hddpool |
+------------+---------+------------------+--------------+Baassofti paigaldamine ja seadistamine ^
Konteineri haldamiseks tuleb installida jÀrgmised tarkvarad:
Package
Kirjeldus
bash
GNU Bourne Again shell
bash-completion
Programmable completion for the bash shell
sudo
Anna teatud kasutajatele vÔimalus kÀitada mÔned kÀsud rootina
shadow
Parooli- ja konto haldustööriistade komplekt, mis toetab shadow-failide ja PAM-i kasutamist
tzdata
Allikad ajavööndi ja suveaja andmete jaoks
nano
Pico redaktori kloon tÀiendustega
Lisaks vĂ”ite sĂŒsteemis man-pages toe installimiseks paigaldada jĂ€rgmised paketid â man man-pages mdocml-apropos less
lxc exec jupyterlab -- apk add bash bash-completion sudo shadow tzdata nanoVaatame kÀske ja vÔtmeid, mida kasutasime:
lxcâ LXD kliendi kutseexecâ LXD kliendi meetod, mis kĂ€ivitab kĂ€su konteinerisjupyterlabâ Konteineri identifikaator--â Erakordne vĂ”ti, mis nĂ€itab, et vĂ”tmeid ei tĂ”lgendata enam vĂ”tmetenalxcja edastab kogu ĂŒlejÀÀnud reas, nagu see on, konteinerileapkâ Alpine Linuxi jaotise paketihalduraddâ Paketihalduri meetod, mis installib kĂ€su jĂ€rel nĂ€idatud paketid
Edasi, seadistame sĂŒsteemis ajavööndi Europe/Moscow:
lxc exec jupyterlab -- cp /usr/share/zoneinfo/Europe/Moscow /etc/localtimePĂ€rast ajavööndi seadmist, on pakett tzdata sĂŒsteemis enam vajalik, see vĂ”tab ruumi, seega eemaldame selle:
lxc exec jupyterlab -- apk del tzdataKontrollime ajavööndit:
lxc exec jupyterlab -- date
Wed Apr 15 10:49:56 MSK 2020Et mitte raisata palju aega Bash'i seadistamisele uutele kasutajatele konteineris, jĂ€rgnevate toimingutega kopeerime sinna host-sĂŒsteemist juba valmis skel-failid. See vĂ”imaldab muuta Bash'i konteineris interaktiivses reĆŸiimis. Minu host-sĂŒsteem on Manjaro Linux ja kopeeritavad failid /etc/skel/.bash_profile, /etc/skel/.bashrc, /etc/skel/.dir_colors sobivad pĂ”himĂ”tteliselt ka Alpine Linuxile ja ei tekita kriitilisi probleeme, kuid teil vĂ”ib olla erinev jaotamine ja peate ise tegelema probleemiga, kui kĂ€ivitatav Bash konteineris ei tööta.
Kopeerime skel-failid konteinerisse. VÔti --create-dirs loob vajalikud kaustad, kui need ei eksisteeri:
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_colorsKuna root-kasutaja eksisteerib, kopeerime just konteinerisse kopeeritud skel-failid tema kodu kausta:
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_colorsAlpine Linuxis on kasutajatele installitud sĂŒsteemi shell /bin/sh, me vahetame selle root kasutaja jaoks Bash-iga:
lxc exec jupyterlab -- usermod --shell=/bin/bash rootEt root kui kasutaja ei olnud paroolita, peab ta parooli seadma. JÀrgmine kÀsk genereerib ja seadistab talle uue juhusliku parooli, mille nÀete konsooli ekraanil pÀrast selle tÀitmist:
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: sFiXEvBswuWASamuti loome uue sĂŒsteemi kasutaja â jupyter kellele seadistame hiljem JupyterLab:
lxc exec jupyterlab -- useradd --create-home --shell=/bin/bash jupyterGenereerime ja seadistame talle parooli:
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: ZIcbzWrF8tkiSeejĂ€rel tĂ€idame kaks kĂ€sku, esimene loob sĂŒsteemi rĂŒhma sudo, ja teine lisab kasutaja sellesse jupyter:
lxc exec jupyterlab -- groupadd --system sudo
lxc exec jupyterlab -- groupmems --group sudo --add jupyterKontrollime, millistesse rĂŒhmadesse kasutaja kuulub jupyter:
lxc exec jupyterlab -- id -Gn jupyter
jupyter sudoKÔik on korras, liigume edasi.
Lubame kĂ”igil kasutajatel, kes kuuluvad rĂŒhma sudo kasutada kĂ€sku sudo. Selleks tĂ€itke jĂ€rgmine skript, mis sed kommenteerib konfiguratsioonifaili parameetrit: /etc/sudoers:
lxc exec jupyterlab -- /bin/bash -c "sed --in-place -e '/^#[ t]*%sudo[ t]*ALL=(ALL)[ t]*ALL$/ s/^[# ]*//' /etc/sudoers"JupyterLab'i paigaldamine ja seadistamine ^
JupyterLab â see on Pythoni rakendus, seega peame esmalt installima selle tĂ”lgendi. Samuti, JupyterLab me kavatseme installida Pythonipakettide halduri kaudu pip, mitte sĂŒsteemi kaudu, kuna sĂŒsteemide registris vĂ”ib see olla aegunud, ja seetĂ”ttu peame kĂ€sitsi lubama selle sĂ”ltuvused, installides jĂ€rgmised paketid â python3 python3-dev gcc libc-dev zeromq-dev:
lxc exec jupyterlab -- apk add python3 python3-dev gcc libc-dev zeromq-devUuendame Pythonimoodulid ja pakettide halduri pip ajaloolise versioonini:
lxc exec jupyterlab -- python3 -m pip install --upgrade pip setuptools wheelPaigaldame JupyterLab pakettide halduri kaudu pip:
lxc exec jupyterlab -- python3 -m pip install jupyterlabKuna laiendused on JupyterLab on eksperimentaalsed ega tule neid ametlikult jupyterlab paketiga, seega peame nad kÀsitsi installima ja seadistama.
Installime NodeJS-i ja selle paketihalduri NPM, kuna JupyterLab kasutab neid oma laiendustes:
lxc exec jupyterlab -- apk add nodejs npmKuna laiendused, JupyterLab mida me installime, peavad töötama, tuleb need installida kasutajadiriktiivi, kuna rakendus kĂ€ivitatakse kasutaja alt. jupyterProbleem on selles, et kĂ€ivituskomandis pole parameetrit, mille kaudu saaks kausta edastada; rakendus tunnustab ainult keskkonnamuutujat ja seetĂ”ttu peame selle mÀÀrama. Selleks kirjutame keskkonnamuutujate ekspordi kĂ€su. JUPYTERLAB_DIR kasutaja keskkonnas jupyter, faili .bashrc, mis tĂ€idetakse iga kord, kui kasutaja sĂŒsteemi siseneb:
lxc exec jupyterlab -- su -l jupyter -c "echo -e "nexport JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab" >> .bashrc"JÀrgmisel kÀsul installime spetsiaalse laienduse - laienduste halduri 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"NĂŒĂŒd on kĂ”ik valmis esimeseks kĂ€ivitamiseks, JupyterLabaga saame installida veel mĂ”ned kasulikud laiendused:
tocâ Sisukord, genereerib artiklis/notebookis pealkirjade loendijupyterlab-horizon-themeâ UI kujundusjupyterlab_neon_themeâ UI kujundusjupyterlab-ubu-themeâ Veel ĂŒks kujundus autori poolt selle artikli đ Kuid selles juhtumis nĂ€idatakse, et installimine toimub GitHubi kaudu.
Seega tÀitke jÀrjestikku jÀrgmised kÀsud, et installida need laiendused:
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"PĂ€rast laienduste installimist peame need kompileerima, kuna varem, installimisel, mÀÀrasime vĂ”tme --no-build aega sÀÀsta. NĂŒĂŒd kiirendame oluliselt nende koos kompileerimist.
lxc exec jupyterlab -- su -l jupyter -c "export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab; jupyter lab build"NĂŒĂŒd tĂ€itke jĂ€rgmised kaks kĂ€sku esmakordseks kĂ€ivitamiseks. JupyterLabSeda oleks vĂ”imalik kĂ€ivitada ĂŒhe kĂ€suga, kuid sel juhul jÀÀb kĂ€ivitamise kĂ€sk, mida me mĂ”ttes hoiame, bash'i konteinerisse, mitte hostisse, kus kĂ€ske on juba piisavalt, et neid ajaloos salvestada đ
Logime end konteinerisse sisse kui kasutaja jupyter:
lxc exec jupyterlab -- su -l jupyterJÀtkake koos JupyterLab vÔtmete ja parameetritega nagu on nÀidatud:
[jupyter@jupyterlab ~]$ jupyter lab --ip=0.0.0.0 --no-browserAvage veebibrauseris aadress http://10.0.5.5:8888 ja avanenud lehele sisestage token juurdepÀÀsu, mida nĂ€ete konsoolis. Kopeerige see ja kleepige lehele, seejĂ€rel klĂ”psake Logi sisse. PĂ€rast sisse logimist minge vasakpoolse menĂŒĂŒ laienditesse, nagu on nĂ€idatud alloleval pildil, kus teile pakutakse laiendihalduri aktiveerimisel vĂ”tta enda kanda turvariskid, installides kolmandate osapoolte laiendeid, mille eest JupyterLabi arendus ei vastuta:

Kuid me isolatsioonime tĂ€ielikult JupyterLab ja paigutame selle konteinerisse, nii et kolmandad osapooled, kes vajavad ja kasutavad NodeJS-i, ei saaks vĂ€hemalt andmeid kettalt varastada, vĂ€lja arvatud need, mille me avame konteineri sees. Teie privaatsetele dokumentidele hostis /home konteinerist protsessidele ligipÀÀs tĂ”enĂ€oliselt ei Ă”nnestu, ja kui see juhtub, siis peavad selleks olema failide privileegid hostsĂŒsteemis, kuna me kĂ€ivitame konteineri privileegideta reĆŸiimis. Selle teabe pĂ”hjal vĂ”ite hinnata laiendite lubamise riski JupyterLab.
Loodud IPython-i notebukid (lehed JupyterLab) luuakse nĂŒĂŒd kasutaja kodu direktorisse â /home/jupyter, kuid meie plaanides on andmete jagamine (jagamine) hosti ja konteineri vahel, seega minge tagasi konsooli ja peatage JupyterLab kasutades kuumklahvi â CTRL+C ja vastates y pĂ€ringule. SeejĂ€rel katkestage kasutaja interaktiivne sessioon jupyter tehes kuumklahvi CTRL+D.
Andmete jagamine hostiga ^
Hostiga andmete jagamiseks tuleb konteinerisse luua seade, mis seda vÔimaldab ja selleks tÀitke jÀrgmine kÀsk, kus me mÀÀrame jÀrgmised vÔtmed:
lxc config device addâ KĂ€sk lisab seadme konfiguratsioonijupyterâ Konteinerite identifikaator, kuhu seadme konfiguratsioon lisataksehostfsâ Seadmestiku identifikaator. VĂ”ite mÀÀrata mistahes nime.diskâ MÀÀratakse seadme tĂŒĂŒppathâ MÀÀratakse tee konteineris, kuhu LXD selle seadme monteeribsourceâ MÀÀrake allikas, tee katalooge hostis, mida soovite konteineriga jagada. MÀÀrake tee vastavalt oma eelistustele.
lxc config device add jupyterlab hostfs disk path=/mnt/hostfs source=/home/dv/projects/ipython-notebooksKataloogile /home/dv/projects/ipython-notebooks peab olema seatud konteineri kasutaja Ă”igused, kellel on praegu UID, mis on vĂ”rdne SubUID + UID, vaadake peatĂŒkki Turvalisus. Konteinerite Ă”igused artiklis LXD pĂ”hifunktsioonid â konteinerisĂŒsteem Linuxis.
SĂ€tet Ă”iguste hostis, kus konteineri kasutaja on omanik. jupyter, ja muutuja $USER mÀÀrab teie hosti kasutaja rĂŒhmaks:
sudo chown 1001000:$USER /home/dv/projects/ipython-notebooksTere, maailm! ^
Kui teil on veel avatud konsooli sessioon konteineris koos JupyterLab, kĂ€ivitage see uuesti uue vĂ”tmega --notebook-dir mÀÀrates vÀÀrtuse /mnt/hostfs konteineri sĂŒgisel, mille me lĂ”ikes varem lĂ”ime:
jupyter lab --ip=0.0.0.0 --no-browser --notebook-dir=/mnt/hostfsSeejĂ€rel minge lehele http://10.0.5.5:8888 ja looge oma esimene sĂŒlearvuti, klĂ”psates alloleval pildil nĂ€idatud nuppu:

SeejĂ€rel sisestage lehe vĂ€lja Python koodi, mis vĂ€ljastab klassikalise Tere maailm!. Sisestamise lĂ”petamisel vajutage CTRL+ENTER vĂ”i nuppu âplayâ ĂŒlemise tööriistariba peal, et JupyterLab seda teeks:

Peaaegu kĂ”ik on nĂŒĂŒd kasutamiseks valmis, kuid ei oleks huvitav, kui me ei installiks tĂ€iendavaid Python-mooduleid (tĂ€israkendusi), mis oluliselt laiendavad Python'i standardseid vĂ”imalusi JupyterLab, seega liigume edasi đ
P.S. Huvi pĂ€rast, vana versioon Jupyter koodinimega Jupyter Notebook ei ole kuskile kadunud ja see eksisteerib paralleelselt JupyterLab. Vanale versioonile ĂŒleminekuks minge lingile, lisades aadressile sufiksi/tree, ja uuele versioonile ĂŒleminek toimub sufiksiga /lab, kuid seda ei pea tingimata mÀÀrama:
- Jupyter Notebook â http://10.0.5.5:8888/tree
- Jupyter Lab â http://10.0.5.5:8888/lab
Python'i vÔimaluste laiendamine ^
Selles jaotises installime vĂ”imsad Python'i moodulid, mille tulemused integreeritakse sĂŒlearvutitesse NumPy, Pandas, Matplotlib, IPyWidgets Enne kui installime ĂŒlaltoodud Python'i moodulid paketihalduri kaudu JupyterLab.
peame esmalt lubama sĂŒsteemi sĂ”ltuvused Alpine Linuxis: pip â Vajalik moodulite kompileerimiseks, kuna mĂ”ned neist on rakendatud keeles
g++ja need ĂŒhendatakse Python'iga kĂ€itamisel kui binaarsed moodulid C++ freetype-devâ sĂ”ltuvus Python mooduli jaokslxc exec jupyterlab -- apk add g++ freetype-dev Matplotlib
Paigaldame sÔltuvused:
lxc exec jupyterlab -- apk add g++ freetype-devAlpine Linux'i praeguses versioonis on ĂŒks probleem, et uut NumPy versiooni ei Ă”nnestu kompileerida, ilmneb kompileerimisviga, mida mul ei Ă”nnestunud lahendada:
VIGA: Ei Ônnestunud luua wheel'e numpy jaoks, mis kasutavad PEP 517 ja mida ei saa otse installida
SeetĂ”ttu installime selle mooduli kui sĂŒsteemipaketi, mis sisaldab juba kompileeritud versiooni, kuid see on veidi vanem kui see, mis on praegu veebilehel saadaval:
lxc exec jupyterlab -- apk add py3-numpy py3-numpy-devSeejÀrel installime Python moodulid pakihalduri kaudu pip. Ole kannatlik, kuna mÔned moodulid kompileeritakse ja see vÔtab mitu minutit. Minu masinas vÔttis kompileerimine umbes 15 minutit:
lxc exec jupyterlab -- python3 -m pip install pandas ipywidgets matplotlibKustutame installatsioonide vahemÀed:
lxc exec jupyterlab -- rm -rf /home/*/.cache/pip/*
lxc exec jupyterlab -- rm -rf /root/.cache/pip/*Moodulite testimine JupyterLab'is ^
Kui sul on kĂ€ivitamine JupyterLab, taaskĂ€ivita see, et uued installitud moodulid aktiveeruksid. Selle jaoks vajutage CTRL+C seal, kus see on kĂ€ivitatud ja sisestage y peatamise pĂ€ringule, ja siis kĂ€ivita uuesti JupyterLab vajutades klaviatuuril 'ĂŒles' noolt, et mitte kĂ€sku uuesti sisestada ja seejĂ€rel Enter et kĂ€ivitada:
jupyter lab --ip=0.0.0.0 --no-browser --notebook-dir=/mnt/hostfsMine lehele http://10.0.5.5:8888/lab vÔi vÀrskenda brauseris lehte, seejÀrel sisestage jÀrgmine kood uude mÀrkmiku lahtrisse:
%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_plotSul peaks olema tulemuseks pilt allpool, kus IPyWidgets genereerib lehekĂŒlje UI-elemendi, mis toimub interaktiivselt algkoodiga, samuti Matplotlib vĂ€ljastab koodi tulemuse pildina nagu funktsiooni graafik:

Palju nÀiteid IPyWidgets vÔid leida Ôpetustes siin
Mis veel? ^
Oled suurepĂ€rased, kui jĂ€id ja jĂ”udsid artikli lĂ”puni. Ma tahtsin teadlikult mitte jagada artikli lĂ”pus valmis skripti, mis installiks JupyterLab ĂŒhe klĂ”psuga, et julgustada töötajaid đ Kuid sa saad seda ise teha, kuna juba tead, kuidas, kogudes kĂ€sud ĂŒheks Bash skriptiks đ
Samuti saad:
- MÀÀrata konteineri jaoks vÔrgunime IP-aadressi asemel, kirjutades see lihtsasse
/etc/hostsja brauseris kirjutada aadress http://jupyter.local:8888 - MĂ€ngida ressursi piirangutega konteineris, selle jaoks loe peatĂŒkki LXD pĂ”hilistes vĂ”imalustes vĂ”i saa rohkem teavet LXD arendaja veebilehelt.
- Kujunda ĂŒmberkujundus:

Ja palju muud saate! Sellega on kÔik. Soovin teile edu!
UUENDUS: 15.04.2020 18:30 â Parandasin vead peatĂŒkis âTere, maailm!â
UUENDUS: 16.04.2020 10:00 â Kohandasin ja lisasin teksti laienduste halduri aktiveerimise kirjelduse juurde JupyterLab
UUENDUS: 16.04.2020 10:40 â Parandasin leitud vead tekstis ja muutsin natuke paremaks peatĂŒki âPĂ”hjaliku tarkvara installimine ja sĂŒsteemi seadistamineâ
Allikas: habr.com
