Ho qala Jupyter ho orbit ea LXD

Na u kile ua tlameha ho leka lisebelisoa tsa khoutu kapa tsa sistimi ho Linux ntle le ho tšoenyeha ka sistimi e ka tlase le ho senya ntho e ngoe le e ngoe haeba ho na le phoso khoutu e lokelang ho sebetsa ka litokelo tsa motso?

Empa ho thoe'ng ka taba ea hore ha re re u hloka ho leka kapa ho tsamaisa sehlopha sohle sa li-microservices tse fapaneng mochining o le mong? Lekholo kapa esita le sekete?

Ka mechine ea sebele e laoloang ke hypervisor, mathata a joalo a ka rarolloa ebile a tla rarolloa, empa ka litšenyehelo life? Mohlala, setshelo se ho LXD se ipapisitseng le phepelo ea Alpine Linux se ja feela 7.60MB RAM, le moo karohano ea motso e lulang teng kamora ho qala 9.5MB! U e rata joang, Elon Musk? Ke khothaletsa ho tsoa bokhoni ba mantlha ba LXD - sistimi ea lijana ho Linux

Ka mor'a hore ho hlake ka kakaretso hore na lijana tsa LXD ke eng, ha re ee pele 'me re nahane, ho thoe'ng haeba ho ne ho e-na le sethala se joalo sa kotulo moo u ka tsamaisang khoutu ea moeti ka mokhoa o sireletsehileng, ho hlahisa li-graph, ka matla (interactively) hokela li-widget tsa UI ka khoutu ea hau, tlatselletsa khoutu ka mongolo ka blackjack... fomate? Mofuta o mong oa li-blog tse sebetsang? Wow ... kea e batla! Batla! 🙂

Sheba tlas'a katse moo re tla qala ka setshelo jupyter lab - moloko o latelang oa sebopeho sa mosebelisi ho fapana le Jupyter Notebook ea khale, hape re tla kenya li-module tsa Python joalo ka Lipalo, pandas, Matlotlib, IPyWidgets e tla u lumella ho etsa ntho e 'ngoe le e' ngoe e thathamisitsoeng ka holimo le ho e boloka kaofela ka faele e khethehileng - laptop ea IPython.

Ho qala Jupyter ho orbit ea LXD

Morero oa ho tloha oa Orbital ^

Ho qala Jupyter ho orbit ea LXD

Ha re faneng ka moralo o khuts'oane oa ts'ebetso ho re nolofalletsa ho kenya ts'ebetsong morero ona o kaholimo:

  • Ha re kenye le ho qala sets'oants'o se ipapisitseng le thepa ea kabo Alpine Linux. Re tla sebelisa kabo ena hobane e etselitsoe minimalism mme re tla kenya software e hlokahalang feela ho eona, ha ho letho le sa hlokahaleng.
  • Ha re kenye disk e eketsehileng ka har'a setshelo ebe re e reha lebitso - hostfs ebe u e kenya ho sistimi ea faele ea motso. Disk ena e tla etsa hore ho khonehe ho sebelisa lifaele ho moamoheli ho tsoa bukeng e fanoeng ka har'a setshelo. Kahoo, data ea rona e tla ikemela ho setshelo. Haeba setshelo se hlakotsoe, data e tla sala ho moamoheli. Hape, morero ona o na le thuso bakeng sa ho arolelana data e tšoanang pakeng tsa lijana tse ngata ntle le ho sebelisa mekhoa e tloaelehileng ea marang-rang ea kabo ea lijana.
  • Ha re kenyeng Bash, sudo, lilaebrari tse hlokahalang, eketsa le ho hlophisa mosebelisi oa sistimi
  • Ha re kenye Python, li-module mme re bokelle litšepiso tsa binary bakeng sa tsona
  • Ha re kenye le ho qala jupyter lab, iketsetse ponahalo, kenya lisebelisoa bakeng sa eona.

Sehloohong sena re tla qala ka ho qala setshelo, re ke ke ra nahana ho kenya le ho lokisa LXD, u ka fumana tsena tsohle sehloohong se seng - Likarolo tsa mantlha tsa LXD - Sistimi ea lijana tsa Linux.

Ho kenya le ho hlophisoa ha tsamaiso ea motheo ^

Re theha setshelo ka taelo eo ho eona re hlalosang setšoantšo - alpine3, sesupo sa setshelo - jupyterlab 'me, ha ho hlokahala, profaele ea tlhophiso:

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

Mona ke sebelisa profil ea tlhophiso hddroot e hlalosang ho bopa setshelo se nang le karohano ya motso Letamo la polokelo e fumanehang ho disk ea 'mele ea HDD:

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

Sena se mpha monyetla oa ho leka lijana ho disk ea HDD, ho boloka lisebelisoa tsa disk ea SSD, e fumanehang hape tsamaisong ea ka 🙂 eo ke e entseng profil e arohaneng ea tlhophiso. ssdroot.

Ka mor'a hore setshelo se bōptjoe, se boemong STOPPED, kahoo re hloka ho e qala ka ho tsamaisa init system ho eona:

lxc start jupyterlab

Ha re hlahise lenane la lijana ho LXD re sebelisa senotlolo -c e bontšang hore na columns pontšo:

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

Ha u theha setshelo, aterese ea IP e khethiloe ka mokhoa o sa reroang, kaha re sebelisitse profil ea tlhophiso default e neng e hlophisitsoe pele sengolong Likarolo tsa mantlha tsa LXD - Sistimi ea lijana tsa Linux.

Re tla fetola aterese ena ea IP hore e be e sa lebaleheng ka ho theha sehokelo sa marang-rang boemong ba setshelo, eseng maemong a profil ea tlhophiso joalo ka ha e se e le maemong a hajoale. Ha o a tlameha ho etsa sena, o ka e tlola.

Ho theha sebopeho sa marang-rang eth0 eo re e hokahanyang le switch (borokho ba marang-rang) lxdbr0 moo re nolofalitseng NAT ho latela sengoloa se fetileng mme setshelo se se se tla ba le phihlello ea Marang-rang, hape re abela aterese ea IP e tsitsitseng ho sehokelo - 10.0.5.5:

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

Kamora ho kenya sesebelisoa, setshelo se tlameha ho qala hape:

lxc restart jupyterlab

Ho hlahloba boemo ba setshelo:

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

Ho kenya software ea mantlha le ho theha sistimi ^

Ho tsamaisa setshelo sa rona, o hloka ho kenya software e latelang:

sephutheloana
Tlhaloso

Bash
Khetla ea GNU Bourne Hape

bash-qetello
Ho phethoa ka mokhoa o lokiselitsoeng bakeng sa khetla ea bash

sudo
Fana ka basebelisi ba itseng bokhoni ba ho tsamaisa litaelo tse ling joalo ka motso

Moriti
Password le sesebelisoa sa taolo ea ak'haonte e nang le ts'ehetso ea lifaele tsa moriti le PAM

tzdata
Mehloli ea nako ea libaka le data ea nako ea ho boloka motšehare

nano
Mohlophisi oa Pico o nang le lintlafatso

Ntle le moo, o ka kenya ts'ehetso ho maqephe a batho ba sistimi ka ho kenya liphutheloana tse latelang - man man-pages mdocml-apropos less

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

Ha re shebeng litaelo le linotlolo tseo re li sebelisitseng:

  • lxc - Letsetsa moreki oa LXD
  • exec - Mokhoa oa moreki oa LXD o tsamaisang taelo ka har'a setshelo
  • jupyterlab - ID ea setshelo
  • -- - Senotlolo se ikhethileng se hlalosang ho se toloke linotlolo tse ling e le linotlolo tsa lxc 'me u fetise khoele e setseng joalo ka setshelo
  • apk - Motsamaisi oa sephutheloana sa Alpine Linux
  • add - Mokhoa oa mookameli oa sephutheloana o kenyang liphutheloana tse boletsoeng ka mor'a taelo

Ka mor'a moo, re tla beha sebaka sa nako tsamaisong Europe/Moscow:

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

Kamora ho kenya sebaka sa nako, sephutheloana tzdata ha e sa hlokahala tsamaisong, e tla nka sebaka, kahoo a re e hlakole:

lxc exec jupyterlab -- apk del tzdata

Sheba sebaka sa nako:

lxc exec jupyterlab -- date

Wed Apr 15 10:49:56 MSK 2020

E le hore u se ke ua qeta nako e ngata u theha Bash bakeng sa basebelisi ba bacha ka har'a setshelo, ka mehato e latelang re tla kopitsa lifaele tsa skel tse lokiselitsoeng ho tloha tsamaisong ea baeti ho ea ho eona. Sena se tla u lumella ho khabisa Bash ka har'a setshelo ka mokhoa o kopanetsoeng. Sistimi ea ka e amohelang ke Manjaro Linux mme lifaele li ntse li kopitsoa /etc/skel/.bash_profile, /etc/skel/.bashrc, /etc/skel/.dir_colors ha e le hantle li loketse Alpine Linux 'me ha li bake mathata a tebileng, empa u ka' na ua ba le kabo e fapaneng 'me u hloka ho ikemela ho bona hore na ho na le phoso ha u tsamaisa Bash ka sejaneng.

Kopitsa lifaele tsa skel ho setshelo. Senotlolo --create-dirs e tla theha li-directory tse hlokahalang haeba li le sieo:

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

Bakeng sa mosebelisi ea teng oa metso, kopitsa lifaele tsa skel tse sa tsoa kopitsoa ka har'a sets'oants'o sa buka ea lapeng:

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

Alpine Linux e kenya khetla ea sistimi bakeng sa basebelisi /bin/sh, re tla e nkela sebaka root mosebelisi ho Bash:

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

hore root mosebelisi o ne a se na password, o hloka ho beha phasewete. Taelo e latelang e tla hlahisa le ho beha phasewete e ncha e sa reroang bakeng sa hae, eo u tla e bona skrineng sa console kamora hore e etsoe:

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

Hape, ha re theheng mosebelisi e mocha oa sistimi - jupyter tseo re tla li lokisa hamorao jupyter lab:

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

Ha re e hlahiseng le ho e behela phasewete:

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

Ka mor'a moo, re tla phetha litaelo tse peli, ea pele e tla theha sehlopha sa tsamaiso sudo, 'me ea bobeli e tla eketsa mosebedisi ho eona jupyter:

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

Ha re boneng hore na mosebelisi ke oa lihlopha life jupyter:

lxc exec jupyterlab -- id -Gn jupyter

jupyter sudo

Tsohle di lokile, ha re tsweleng pele.

Dumella basebelisi bohle bao e leng litho tsa sehlopha sudo sebelisa taelo sudo. Ho etsa sena, tsamaisa script e latelang, moo sed e hlakola mohala oa parameter faeleng ea tlhophiso /etc/sudoers:

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

Ho kenya le ho hlophisa JupyterLab ^

jupyter lab ke ts'ebeliso ea Python, kahoo re tlameha ho qala ho kenya mofetoleli enoa. Hape, jupyter lab re tla kenya ka ho sebelisa mookameli oa sephutheloana sa Python pip, eseng sistimi e le 'ngoe, hobane e kanna ea ba e siiloe ke nako sebakeng sa polokelo ea sistimi, ka hona, re tlameha ho rarolla litšepiso tsa eona ka ho kenya liphutheloana tse latelang - python3 python3-dev gcc libc-dev zeromq-dev:

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

Ha re ntlafatse li-module tsa python le mookameli oa sephutheloana pip ho mofuta oa hajoale:

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

Kenya jupyter lab ka mookameli oa sephutheloana pip:

lxc exec jupyterlab -- python3 -m pip install jupyterlab

Ho tloha ha likeketso ka jupyter lab li entsoe liteko 'me ha li romelloe ka molao le sephutheloana sa jupyterlab, kahoo re tlameha ho e kenya le ho e hlophisa ka letsoho.

Ha re kenye NodeJS le mookameli oa sephutheloana bakeng sa eona - NPM, ho tloha ka nako eo jupyter lab e li sebelisa bakeng sa likeketso tsa eona:

lxc exec jupyterlab -- apk add nodejs npm

Ho li-extensions bakeng sa jupyter lab tseo re tla li kenya li sebelitse, li hloka ho kenngoa bukeng ea mosebelisi kaha sesebelisoa se tla hlahisoa ho tsoa ho mosebelisi jupyter. Bothata ke hore ha ho na parameter taelong ea ho qala e ka fetisetsoang bukeng; kopo e amohela feela phetoho ea tikoloho, kahoo re tlameha ho e hlalosa. Ho etsa sena, re tla ngola taelo e fapaneng ea kantle ho naha JUPYTERLAB_DIR tikolohong ya mosebedisi jupyter, ho file .bashrce etsoang nako le nako ha mosebelisi a kena:

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

Taelo e latelang e tla kenya katoloso e khethehileng - mookameli oa katoloso ho jupyter lab:

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

Joale ntho e 'ngoe le e' ngoe e se e loketse tlhahiso ea pele jupyter lab, empa re ntse re ka kenya lisebelisoa tse 'maloa tsa bohlokoa:

  • toc - Lethathamo la Tse ka Hare, le hlahisa lethathamo la lihlooho bukeng ea sehlooho/notebook
  • jupyterlab-horizon-theme - Sehlooho sa UI
  • jupyterlab_neon_theme - Sehlooho sa UI
  • jupyterlab-ubu-theme - E 'ngoe tema ho tsoa ho mongoli sengoloa sena :) Empa ntlheng ena, ho tla bonts'oa ho kengoa ho tsoa polokelong ea GitHub

Kahoo, tsamaisa litaelo tse latelang ka tatellano ho kenya lisebelisoa tsena:

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"

Ka mor'a ho kenya lisebelisoa, re tlameha ho li bokella, kaha pele, nakong ea ho kenya, re boletse senotlolo --no-build ho boloka nako. Joale re tla potlakisa haholo ka ho li bokella hammoho ka nako e le 'ngoe:

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

Joale tsamaisa litaelo tse peli tse latelang ho matha khetlo la pele jupyter lab. Ho ka khoneha ho e qala ka taelo e le 'ngoe, empa tabeng ena, taelo ea ho qala, eo ho leng thata ho e hopola kelellong ea hau, e tla hopoloa ka bash ka setshelo, eseng ho moeti, moo ho seng ho ntse ho e-na le litaelo tse lekaneng. ho li ngola nalaneng :)

Kena ka har'a setshelo joalo ka mosebelisi jupyter:

lxc exec jupyterlab -- su -l jupyter

E latelang, matha jupyter lab ka linotlolo le liparamente joalo ka ha ho bonts'itsoe:

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

Eya atereseng ea sebatli sa hau sa Marang-rang http://10.0.5.5:8888 le leqepheng le bulang kena token phihlello eo u tla e bona ho console. Kopitsa le ho e manamisa leqepheng, ebe o tobetsa Kena. Ka mor'a ho kena, e-ea ho menu ea li-extensions ka ho le letšehali, joalokaha ho bontšitsoe setšoantšong se ka tlase, moo u tla susumelletseha, ha u kenya mookameli oa katoloso, ho ipeha kotsing ea ts'ireletso ka ho kenya lisebelisoa tse tsoang ho batho ba boraro tseo taelo ea tsona e leng ho tsona. Ntlafatso ea JupyterLab ha a na boikarabelo:

Ho qala Jupyter ho orbit ea LXD

Leha ho le joalo, re arola kaofela jupyter lab 'me u e behe ka har'a setshelo e le hore likeketso tsa mokha oa boraro tse hlokang le ho sebelisa NodeJS li se ke tsa utsoa data ho disk ntle le tseo re li bulang ka har'a setshelo. Fumana litokomane tsa hau tsa lekunutu ho moamoheli /home lits'ebetso tse tsoang ka har'a sets'oants'o ha li na monyetla oa ho atleha, 'me haeba li etsa joalo, o hloka ho ba le litokelo ho lifaele ho sistimi e amohelang, kaha re tsamaisa setshelo ho mokgoa o sa lokang. Ho latela lintlha tsena, o ka lekola kotsi ea ho kenyelletsa li-extensions ho jupyter lab.

E thehile libuka tsa lintlha tsa IPython (maqephe a jupyter lab) joale e tla etsoa bukeng ea lapeng ea mosebelisi - /home/jupyter, empa merero ea rona ke ho arola data (karolelano) pakeng tsa moamoheli le setshelo, kahoo khutlela ho console 'me u emise. jupyter lab ka ho sebelisa hotkey - CTRL+C le ho araba y ka kopo. Ebe o emisa ho sebelisana ha mosebelisi jupyter ho tlatsa hotkey CTRL+D.

Ho arolelana data le moamoheli ^

Ho arolelana data le moamoheli, o hloka ho theha sesebelisoa ka har'a setshelo se u lumellang ho etsa sena le ho etsa sena, tsamaisa taelo e latelang moo re hlakisang linotlolo tse latelang:

  • lxc config device add — Taelo e eketsa tlhophiso ea sesebelisoa
  • jupyter - ID ea setshelo seo tlhophiso e eketsoang ho sona
  • hostfs - ID ea sesebelisoa. O ka seta lebitso lefe kapa lefe.
  • disk — Ho bontshitswe mofuta wa sesebediswa
  • path - E hlalosa tsela e ka har'a setshelo eo LXD e tla beha sesebelisoa sena ho eona
  • source - Hlalosa mohloli, tsela e eang bukeng ea moamoheli eo u batlang ho e arolelana le setshelo. Hlalosa tsela ho latela seo u se ratang
lxc config device add jupyterlab hostfs disk path=/mnt/hostfs source=/home/dv/projects/ipython-notebooks

Bakeng sa lethathamo la libuka /home/dv/projects/ipython-notebooks tumello e tlameha ho beoa mosebelisi oa sets'oants'o eo hajoale a nang le UID e lekanang le SubUID + UID, bona khaolo Polokeho. Litokelo tsa setshelo sehloohong Likarolo tsa mantlha tsa LXD - Sistimi ea lijana tsa Linux.

Beha tumello ho moamoheli, moo mong'a eona e tla ba mosebelisi oa setshelo jupyter, le phetoho $USER e tla hlakisa mosebelisi oa hau ea amohelang e le sehlopha:

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

Lefatše Lumela! ^

Haeba u ntse u e-na le seboka sa console se bulehileng ka har'a setshelo ka jupyter lab, ebe o qala hape ka senotlolo se secha --notebook-dir ka ho beha boleng /mnt/hostfs joalo ka tsela e eang motso oa lilaptop ka setshelo sa sesebelisoa seo re se entseng mohatong o fetileng:

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

Ebe u ea leqepheng http://10.0.5.5:8888 'me u thehe laptop ea hau ea pele ka ho tobetsa konopo leqepheng joalo ka ha ho bonts'itsoe setšoantšong se ka tlase:

Ho qala Jupyter ho orbit ea LXD

Ebe, lebaleng le leqepheng, kenya khoutu ea Python e tla bonts'a ea khale Hello World!. Ha o qetile ho kenya, tobetsa CTRL+ENTER kapa konopo ea "play" ho toolbar ka holimo ho etsa hore JupyterLab e etse sena:

Ho qala Jupyter ho orbit ea LXD

Hona joale, hoo e batlang e le ntho e 'ngoe le e' ngoe e se e loketse ho sebelisoa, empa e ke ke ea e-ba ntho e sa thabiseng haeba re sa kenye li-module tsa Python tse eketsehileng (lisebelisoa tse feletseng) tse ka holisang haholo bokhoni bo tloaelehileng ba Python. jupyter lab, ka hona, ha re tsoeleng pele :)

PS Ntho e thahasellisang ke hore ts'ebetsong ea khale jupyter tlasa lebitso la khoutu Buka ea Jupyter ha e so tsamaee 'me e teng ka tsela e tšoanang jupyter lab. Ho fetohela mofuteng oa khale, latela sehokelo o kentseng sehlongoana atereseng/tree, 'me phetoho ea phetolelo e ncha e etsoa ka sekoahelo /lab, empa ha ea tlameha ho boleloa:

Ho eketsa bokhoni ba Python ^

Karolong ena, re tla kenya li-module tse matla tsa puo ea Python joalo ka Lipalo, pandas, Matlotlib, IPyWidgets liphetho tsa tsona li kopantsoe ka har'a lilaptop jupyter lab.

Pele o kenya li-module tsa Python tse thathamisitsoeng ka mookameli oa sephutheloana pip re tlameha ho qala ho rarolla ho itšetleha ka sistimi ho Alpine Linux:

  • g++ - Hoa hlokahala bakeng sa ho hlophisa li-module, kaha tse ling tsa tsona li kenngoa ts'ebetsong ka puo C ++ 'me u ikopanye le Python ka nako ea ho sebetsa e le li-module tsa binary
  • freetype-dev - ho itšetleha ka mojule oa Python Matlotlib

Litšepeho tsa ho kenya:

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

Ho na le bothata bo le bong: boemong ba hajoale ba kabo ea Alpine Linux, ho ke ke ha khoneha ho bokella mofuta o mocha oa NumPy; ho tla hlaha phoso ea pokello eo ke sa khoneng ho e rarolla:

Phoso: Ha e khone ho haha ​​mabili a numpy a sebelisang PEP 517 'me a ke keng a kenngoa ka ho toba

Ka hona, re tla kenya mojule ona e le sephutheloana sa sistimi se abang mofuta o seng o ntse o hlophisitsoe, empa o tsofetse hanyane ho feta o fumanehang sebakeng sa marang-rang:

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

E latelang, kenya li-module tsa Python ka mookameli oa sephutheloana pip. Ka kopo, e-ba le mamello kaha li-module tse ling li tla hlophisa 'me li ka nka metsotso e seng mekae. Mochine oa ka, ho bokella ho nkile ~ metsotso e 15:

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

Ho hlakola li-cache tsa ho kenya:

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

Li-module tsa liteko ho JupyterLab ^

Haeba u matha jupyter lab, e qale hape e le hore li-module tse sa tsoa kenngoa li kenngoe tšebetsong. Ho etsa sena, ka har'a komporo ea console, tobetsa CTRL+C moo o e mathang teng ebe o kena y ho emisa kopo ebe o qala hape jupyter lab ka ho tobetsa motsu o holimo ho keyboard hore o se ke oa kenya taelo hape Enter ho qala:

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

E ea leqepheng http://10.0.5.5:8888/lab kapa u nchafatse leqephe ho sebatli sa hau, ebe u kenya khoutu e latelang ka seleng e ncha ea bukana ea lintlha:

%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

U lokela ho fumana sephetho joaloka setšoantšong se ka tlase, moo IPyWidgets e hlahisa karolo ea UI leqepheng le sebetsanang le khoutu ea mohloli, hape Matlotlib e bonts'a sephetho sa khoutu ka mokhoa oa setšoantšo e le graph ea ts'ebetso:

Ho qala Jupyter ho orbit ea LXD

Mehlala e mengata IPyWidgets u ka e fumana lithutong mona

Eng hape? ^

U entse hantle haeba u ile ua lula 'me ua fihla qetellong ea sengoloa. Ha kea ka ka beha ka boomo mongolo o lokiselitsoeng qetellong ea sehlooho se neng se tla kenya jupyter lab ka "tobetsa e le 'ngoe" ho khothatsa basebetsi :) Empa u ka e etsa u le mong, kaha u se u ntse u tseba, u bokelletse litaelo ka mongolo o le mong oa Bash :)

U ka boela ua:

  • Beha lebitso la marang-rang bakeng sa setshelo ho e-na le aterese ea IP ka ho e ngola ka mokhoa o bonolo /etc/hosts ebe u ngola aterese ho sebatli http://jupyter.local:8888
  • Bapala hohle ka moeli oa lisebelisoa bakeng sa setshelo, bakeng sa sena bala khaolo ho bokhoni ba motheo ba LXD kapa fumana lintlha tse ling sebakeng sa nts'etsopele sa LXD.
  • Fetola sehlooho:

Ho qala Jupyter ho orbit ea LXD

Le ho hongata hoo u ka ho etsang! Ke phetho. Ke u lakaletsa katleho!

HLAHALA: 15.04.2020/18/30 XNUMX:XNUMX - Liphoso tse lokisitsoeng khaolong ea "Hello, World!"
HLAHALA: 16.04.2020/10/00 XNUMX:XNUMX - Sengoloa se lokisitsoeng le se ekelitsoeng tlhalosong ea ts'ebetso ea mookameli oa katoloso jupyter lab
HLAHALA: 16.04.2020/10/40 XNUMX:XNUMX - Liphoso tse lokisitsoeng tse fumanoeng sengolong mme li fetotsoe hanyane bakeng sa ho ntlafatsa khaolo ea "Ho kenya software ea mantlha le ho theha sistimi"

Source: www.habr.com

Eketsa ka tlhaloso