Moa ve ianao tsy maintsy nanandrana ny kaody na ny rafitra fampiasa amin'ny Linux mba tsy hanahy momba ny rafitra fototra ary tsy handrava ny zava-drehetra raha sendra misy hadisoana ao amin'ny code izay tokony hihazakazaka miaraka amin'ny tombontsoa fototra?
Fa ahoana ny amin'ny hoe aleo lazaina fa mila mitsapa na mitantana andiana microservices isan-karazany amin'ny milina iray ianao? Zato na arivo aza?
Miaraka amin'ny milina virtoaly tantanan'ny hypervisor, ny olana toy izany dia azo ary ho voavaha, fa amin'ny vidiny inona? Ohatra, ny kaontenera ao amin'ny LXD mifototra amin'ny fizarana Alpine Linux dia mandany fotsiny 7.60MB
RAM, ary ny toerana misy ny fizarazaran'ny fakany aorian'ny fanombohana 9.5MB
! Ahoana no tianao izany, Elon Musk? Manoro hevitra aho hanamarina fahaiza-manao fototra amin'ny LXD - rafitra fitahirizana ao amin'ny Linux
Rehefa nazava amin'ny ankapobeny hoe inona ny fitoeran'entana LXD, andeha isika hieritreritra, ahoana raha misy sehatra mpijinja toy izany izay ahafahanao mampandeha soa aman-tsara ny code ho an'ny mpampiantrano, mamorona grafika, mampifandray ny UI- widgets amin'ny code-nao amin'ny fomba mavitrika (interactively). ampio ny kaody amin'ny lahatsoratra miaraka amin'ny blackjack... formatting? Karazana bilaogy ifanakalozan-kevitra? Oay... tiako izany! Maniry! π
Jereo eo ambanin'ny saka izay halehantsika ao anaty fitoeran-javatra iray jupyter lab - ny taranaka manaraka amin'ny interface interface fa tsy ny Jupyter Notebook efa lany andro, ary hametraka modely Python toy ny NomPy, pandas, matplotlib, IPyWidgets izay ahafahanao manao izay rehetra voatanisa etsy ambony ary mitahiry izany rehetra izany ao anaty rakitra manokana - solosaina IPython.
Fikarohana
- Drafitra fiaingana orbital
- Fametrahana sy fanamafisana ny rafitra fototra
- Fametrahana rindrambaiko fototra sy fametrahana ny rafitra
- Fametrahana sy fanamboarana JupyterLab
- Mizara data amin'ny mpampiantrano
- Hello World!
- Manitatra ny fahaizan'ny Python
- Fitsapana modules ao amin'ny JupyterLab
- Dia inona koa?
Drafitra fiaingana orbital ^
Andeha hojerentsika ny drafitry ny hetsika fohy hanamora ny fampiharana ny drafitra etsy ambony:
- Andao hametraka sy hametraka kaontenera mifototra amin'ny kitapo fanapariahana Alpine Linux. Hampiasa ity fizarana ity izahay satria mikendry ny minimalism ary hametraka ny rindrambaiko ilaina indrindra ao anatiny, tsy misy zavatra tafahoatra.
- Andeha isika hanampy kapila virtoaly fanampiny ao anaty fitoeran-javatra ary omeo anarana -
hostfs
ary apetaho amin'ny rafitra fichier root. Ity kapila ity dia ahafahana mampiasa rakitra ao amin'ny mpampiantrano avy amin'ny lahatahiry nomena ao anatin'ny fitoeran-javatra. Noho izany, ny angonay dia tsy miankina amin'ny container. Raha voafafa ny kaontenera dia hijanona ao amin'ny mpampiantrano ny angona. Ary koa, ity tetika ity dia ilaina amin'ny fizarana angon-drakitra mitovy amin'ny kaontenera maro nefa tsy mampiasa ny rafitra tambajotra mahazatra amin'ny fizarana kaontenera. - Andao hametraka Bash, sudo, ny tranomboky ilaina, ampio sy amboary ny mpampiasa rafitra
- Andao hametraka Python, modules ary hanangona fiankinan-doha binary ho azy ireo
- Andao hametraka sy hanomboka jupyter lab, amboary ny bika, asio fanitarana ho azy.
Ato amin'ity lahatsoratra ity dia hanomboka amin'ny fandefasana ny kaontenera isika, tsy handinika ny fametrahana sy ny fanamafisana ny LXD, azonao jerena ao amin'ny lahatsoratra hafa izany rehetra izany - Ny endri-javatra fototra amin'ny LXD - Linux container systems.
Fametrahana sy fanamafisana ny rafitra fototra ^
Mamorona container miaraka amin'ny baiko izay mamaritra ny sary - alpine3
, identifier ho an'ny container - jupyterlab
ary, raha ilaina, ny mombamomba ny configuration:
lxc init alpine3 jupyterlab --profile=default --profile=hddroot
Eto aho dia mampiasa profil fanamafisana hddroot
izay mamaritra ny hamorona fitoeran-javatra misy fizarazarana faka ao Dobo fitahirizana hita ao amin'ny kapila HDD ara-batana:
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
Izany dia manome ahy fahafahana hanao fanandramana amin'ny kaontenera ao amin'ny kapila HDD, mitahiry ny loharanon'ny kapila SSD, izay hita ao amin'ny rafiko ihany koa π izay namoronako ny mombamomba ny fanamafisana manokana. ssdroot
.
Aorian'ny famoronana ny kaontenera dia ao amin'ny fanjakana izy io STOPPED
, noho izany dia mila manomboka izany isika amin'ny alΓ lan'ny fampandehanana ny rafitra init ao aminy:
lxc start jupyterlab
Andao hampiseho lisitr'ireo kaontenera ao amin'ny LXD mampiasa ny lakile -c
izay manondro izay cfampisehoana olumns:
lxc list -c ns4b
+------------+---------+-------------------+--------------+
| NAME | STATE | IPV4 | STORAGE POOL |
+------------+---------+-------------------+--------------+
| jupyterlab | RUNNING | 10.0.5.198 (eth0) | hddpool |
+------------+---------+-------------------+--------------+
Rehefa namorona ny kaontenera, ny adiresy IP dia nofidina kisendrasendra, satria nampiasa profil fanamafisana izahay default
izay efa namboarina teo aloha tao amin'ny lahatsoratra Ny endri-javatra fototra amin'ny LXD - Linux container systems.
Hanova ity adiresy IP ity izahay ho lasa tsy hay hadinoina kokoa amin'ny alΓ lan'ny famoronana fifandraisana amin'ny tamba-jotra eo amin'ny haavon'ny kaontenera, fa tsy amin'ny haavon'ny mombamomba ny fanamafisana toy ny amin'izao fotoana izao. Tsy mila manao an'io ianao fa afaka mitsambikina.
Mamorona interface interface eth0
izay ampifandraisinay amin'ny switch (tetezana tambajotra) lxdbr0
izay namelanay ny NAT araka ny lahatsoratra teo aloha ary ny kaontenera dia afaka miditra amin'ny Internet, ary manome adiresy IP static amin'ny interface - 10.0.5.5
:
lxc config device add jupyterlab eth0 nic name=eth0 nictype=bridged parent=lxdbr0 ipv4.address=10.0.5.5
Aorian'ny fampidirana fitaovana dia tsy maintsy averina averina ny fitoeran-javatra:
lxc restart jupyterlab
Fanamarinana ny toetry ny container:
lxc list -c ns4b
+------------+---------+------------------+--------------+
| NAME | STATE | IPV4 | STORAGE POOL |
+------------+---------+------------------+--------------+
| jupyterlab | RUNNING | 10.0.5.5 (eth0) | hddpool |
+------------+---------+------------------+--------------+
Fametrahana rindrambaiko fototra sy fametrahana ny rafitra ^
Mba hitantana ny fitoeranay dia mila mametraka ireto rindrambaiko manaraka ireto ianao:
Package
Description
bash
Ny shell GNU Bourne Again
bash-completion
Fahavitan'ny programmable ho an'ny shell bash
sudo
Omeo ny mpampiasa sasany ny fahafahana manatanteraka baiko sasany ho root
aloka
Fitaovana fitantanana ny tenimiafina sy kaonty miaraka amin'ny fanohanana ny rakitra aloka sy PAM
tzdata
Loharano ho an'ny faritry ny ora sy ny angona momba ny ora andro
Nano
Pico editor clone miaraka amin'ny fanatsarana
Fanampin'izany, azonao atao ny mametraka fanohanana ao amin'ny pejin'ny rafitra amin'ny alΓ lan'ny fametrahana ireto fonosana manaraka ireto β man man-pages mdocml-apropos less
lxc exec jupyterlab -- apk add bash bash-completion sudo shadow tzdata nano
Andeha hojerentsika ny baiko sy ny fanalahidy nampiasainay:
lxc
- Antsoy ny mpanjifa LXDexec
- Fomba mpanjifa LXD izay mitondra baiko ao anaty fitoeran-javatrajupyterlab
- ID kaontenera--
- Fanalahidy manokana izay mamaritra ny tsy fandikana ny fanalahidy fanampiny ho fanalahidin'nylxc
ary ampitao ny tady sisa toy ny amin'ny fitoeran-javatraapk
- mpitantana ny fonosana fizarana Alpine Linuxadd
- Fomba mpitantana fonosana izay mametraka fonosana voafaritra aorian'ny baiko
Manaraka izany dia hametraka fe-potoana eo amin'ny rafitra isika Europe/Moscow
:
lxc exec jupyterlab -- cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Aorian'ny fametrahana ny faritry ny fotoana, ny fonosana tzdata
dia tsy ilaina intsony ao amin'ny rafitra, haka toerana, ka aleo hofafana:
lxc exec jupyterlab -- apk del tzdata
Fanamarinana ny faritry ny ora:
lxc exec jupyterlab -- date
Wed Apr 15 10:49:56 MSK 2020
Mba tsy handany fotoana be amin'ny fametrahana Bash ho an'ireo mpampiasa vaovao ao anaty kaontenera, amin'ireto dingana manaraka ireto dia handika ny rakitra skel efa vita avy amin'ny rafitra mpampiantrano azy izahay. Izany dia ahafahanao manamboatra Bash ao anaty fitoeran-javatra iray amin'ny fomba interactive. Ny rafitra mpampiantrano ahy dia Manjaro Linux ary ny rakitra adika /etc/skel/.bash_profile
, /etc/skel/.bashrc
, /etc/skel/.dir_colors
Amin'ny ankapobeny dia mety amin'ny Alpine Linux izy ireo ary tsy miteraka olana goavana, fa mety manana fizarana hafa ianao ary mila mandinika manokana raha misy hadisoana rehefa mihazakazaka Bash ao anaty container.
Adikao amin'ny fitoeran-javatra ireo rakitra skel. ANDININ- --create-dirs
dia hamorona ny lahatahiry ilaina raha tsy misy:
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
Ho an'ny mpampiasa root efa misy, dia adikao ny rakitra skel vao nadika tao amin'ny kaontenera mankany amin'ny lahatahiry an-trano:
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 dia mametraka shell rafitra ho an'ny mpampiasa /bin/sh
, hosoloinay amin'ny root
mpampiasa amin'ny Bash:
lxc exec jupyterlab -- usermod --shell=/bin/bash root
fa root
tsy tenimiafina ilay mpampiasa, mila mametraka tenimiafina izy. Ity baiko manaraka ity dia hamorona sy hametraka tenimiafina vaovao ho azy, izay ho hitanao eo amin'ny efijery console aorian'ny famonoana azy:
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
Andeha koa hamorona mpampiasa rafitra vaovao - jupyter
izay hamboarinay any aoriana jupyter lab:
lxc exec jupyterlab -- useradd --create-home --shell=/bin/bash jupyter
Andao hamorona sy hametraka tenimiafina ho azy:
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
Manaraka, hanatanteraka baiko roa isika, ny voalohany dia hamorona vondrona rafitra sudo
, ary ny faharoa dia hanampy mpampiasa azy jupyter
:
lxc exec jupyterlab -- groupadd --system sudo
lxc exec jupyterlab -- groupmems --group sudo --add jupyter
Andeha hojerentsika hoe iza no vondrona misy ny mpampiasa jupyter
:
lxc exec jupyterlab -- id -Gn jupyter
jupyter sudo
Tsy maninona ny zava-drehetra, andao hiroso.
Avelao ny mpampiasa rehetra izay mpikambana ao amin'ny vondrona sudo
mampiasa baiko sudo
. Mba hanaovana izany, tanteraho ity script manaraka ity, aiza sed
dia manafoana ny tsipika masontsivana ao amin'ny rakitra fikirakirana /etc/sudoers
:
lxc exec jupyterlab -- /bin/bash -c "sed --in-place -e '/^#[ t]*%sudo[ t]*ALL=(ALL)[ t]*ALL$/ s/^[# ]*//' /etc/sudoers"
Fametrahana sy fanamboarana JupyterLab ^
jupyter lab dia fampiharana Python, ka tsy maintsy apetraka aloha ity mpandika teny ity. koa, jupyter lab hametraka amin'ny alΓ lan'ny mpitantana fonosana Python izahay pip
, fa tsy ny rafitra iray, satria mety ho lany andro ao amin'ny fitehirizana ny rafitra ary noho izany, mila mamaha ny fiankinan-doha amin'ny tanana isika amin'ny fametrahana ireto fonosana manaraka ireto β python3 python3-dev gcc libc-dev zeromq-dev
:
lxc exec jupyterlab -- apk add python3 python3-dev gcc libc-dev zeromq-dev
Andao hanavao ny modules python sy ny mpitantana fonosana pip
amin'ny dikan-teny ankehitriny:
lxc exec jupyterlab -- python3 -m pip install --upgrade pip setuptools wheel
hametraka jupyter lab amin'ny alΓ lan'ny mpitantana fonosana pip
:
lxc exec jupyterlab -- python3 -m pip install jupyterlab
Satria ny fanitarana in jupyter lab dia andrana ary tsy alefa amin'ny fomba ofisialy miaraka amin'ny fonosana jupyterlab, noho izany dia mila mametraka sy manamboatra azy amin'ny tanana isika.
Andao hametraka NodeJS sy ny mpitantana ny fonosana ho azy - NPM, hatramin'ny jupyter lab mampiasa azy ireo amin'ny fanitarana azy:
lxc exec jupyterlab -- apk add nodejs npm
To extensions for jupyter lab izay hapetrakay dia niasa, mila apetraka ao amin'ny lahatahiry mpampiasa izy ireo satria havoaka amin'ny mpampiasa ny fampiharana jupyter
. Ny olana dia tsy misy paramètre ao amin'ny baikon'ny fandefasana izay azo ampitaina amin'ny lahatahiry iray; ny fampiharana ihany no manaiky ny fari-piainan'ny tontolo iainana ary noho izany dia tsy maintsy mamaritra izany isika. Mba hanaovana izany, dia hanoratra ny baiko fanondranana miovaova JUPYTERLAB_DIR
eo amin'ny tontolon'ny mpampiasa jupyter
, mametraka .bashrc
izay tanterahina isaky ny miditra ny mpampiasa:
lxc exec jupyterlab -- su -l jupyter -c "echo -e "nexport JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab" >> .bashrc"
Ny baiko manaraka dia hametraka fanitarana manokana - extension manager in 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"
Ankehitriny dia vonona ny zava-drehetra amin'ny fandefasana voalohany jupyter lab, fa mbola afaka mametraka fanitarana mahasoa vitsivitsy izahay:
toc
- Loha-takelaka, mamorona lisitry ny lohateny ao anaty lahatsoratra/bokyjupyterlab-horizon-theme
- Lohahevitra UIjupyterlab_neon_theme
- Lohahevitra UIjupyterlab-ubu-theme
- Iray hafa lohahevitra avy amin'ny mpanoratra ity lahatsoratra ity :) Fa amin'ity tranga ity dia haseho ny fametrahana avy amin'ny tahiry GitHub
Noho izany, tanteraho ireto baiko manaraka ireto mba hametrahana ireto fanitarana ireto:
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"
Aorian'ny fametrahana ny fanitarana dia tsy maintsy manangona azy ireo isika, satria teo aloha, nandritra ny fametrahana, dia nanondro ny fanalahidy --no-build
mba hamonjy fotoana. Ankehitriny dia hanafaingana be isika amin'ny fanangonana azy ireo indray mandeha:
lxc exec jupyterlab -- su -l jupyter -c "export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab; jupyter lab build"
Ampandehano izao baiko roa manaraka izao mba hampandehanana azy voalohany jupyter lab. Azo atao ny manomboka izany amin'ny baiko iray, fa amin'ity tranga ity, ny baiko fanombohana, izay sarotra hotadidina ao an-tsainao, dia hotsaroan'ny bash ao anaty fitoeran-javatra, fa tsy amin'ny mpampiantrano, izay efa ampy ny baiko. mba hanoratra azy ireo amin'ny tantara :)
Midira ao amin'ny container ho mpampiasa jupyter
:
lxc exec jupyterlab -- su -l jupyter
Manaraka, mihazakazaka jupyter lab miaraka amin'ny fanalahidy sy masontsivana araka ny voalaza:
[jupyter@jupyterlab ~]$ jupyter lab --ip=0.0.0.0 --no-browser
Mandehana any amin'ny adiresy ao amin'ny tranonkalanao http://10.0.5.5:8888 ary amin'ny pejy misokatra midira famantarana fidirana izay ho hitanao ao amin'ny console. Adikao ary apetaho eo amin'ny pejy izany, dia tsindrio Hiditra. Aorian'ny fidirana dia mandehana any amin'ny menio fanitarana eo ankavia, araka ny aseho amin'ny sary etsy ambany, izay hanosika anao, rehefa manetsika ny mpitantana fanitarana, handray risika amin'ny fiarovana amin'ny fametrahana fanitarana avy amin'ny antoko fahatelo izay ny baiko. JupyterLab fampandrosoana tsy tompon'andraikitra:
Na izany aza, mitoka-monina isika rehetra jupyter lab ary apetraho ao anaty kaontenera izany mba tsy ahafahan'ny fanitarana an'ny antoko fahatelo mitaky sy mampiasa ny NodeJS farafaharatsiny mangalatra angon-drakitra ao amin'ny kapila afa-tsy ireo izay sokafantsika ao anaty fitoeran-javatra. Mankanesa any amin'ny antontan-taratasinao manokana momba ny mpampiantrano ao /home
Ny dingana avy amin'ny container dia tsy mety hahomby, ary raha manao izany izy ireo, dia mila manana tombontsoa amin'ny rakitra ao amin'ny rafitra mpampiantrano ianao, satria mihazakazaka ny container amin'ny fomba tsy manam-paharoa. Miorina amin'ity fampahalalana ity, azonao atao ny manombana ny mety hisian'ny fanitarana ao jupyter lab.
Namorona kahie IPython (pejy in jupyter lab) dia ho noforonina ao amin'ny lahatahirin'ny mpampiasa ankehitriny - /home/jupyter
, fa ny fikasanay dia ny hampisaraka ny angona (mizara) eo amin'ny mpampiantrano sy ny kaontenera, ka miverena any amin'ny console ary atsaharo jupyter lab amin'ny fanatanterahana hotkey - CTRL+C
ary mamaly y
amin'ny fangatahana. Atsaharo avy eo ny session interactiven'ny mpampiasa jupyter
mameno hotkey CTRL+D
.
Mizara data amin'ny mpampiantrano ^
Mba hizarana angona amin'ny mpampiantrano dia mila mamorona fitaovana ao amin'ny kaontenera ahafahanao manao izany sy manao izany ianao, araho ity baiko manaraka ity izay amaritanay ireto fanalahidy manaraka ireto:
lxc config device add
- Ny baiko dia manampy ny firafitry ny fitaovanajupyter
- ID ny kaontenera izay ampiana ny confighostfs
- ID fitaovana. Afaka mametraka anarana rehetra ianao.disk
- Tondroina ny karazana fitaovanapath
β Mamaritra ny lalana ao amin'ny kaontenera izay hametrahan'ny LXD ity fitaovana itysource
β Lazao ny loharano, ny lalana mankany amin'ny lahatahiry amin'ny mpampiantrano tianao hozaraina amin'ny fitoeran-javatra. Farito ny lalana araka ny safidinao
lxc config device add jupyterlab hostfs disk path=/mnt/hostfs source=/home/dv/projects/ipython-notebooks
Ho an'ny katalaogy /home/dv/projects/ipython-notebooks
Ny fahazoan-dΓ lana dia tsy maintsy apetraka amin'ny mpampiasa container izay manana UID mitovy amin'izao fotoana izao SubUID + UID
, jereo ny toko Fiarovana. Tombontsoa amin'ny kaontenera ao amin'ny lahatsoratra Ny endri-javatra fototra amin'ny LXD - Linux container systems.
Apetraho amin'ny mpampiantrano ny fahazoan-dΓ lana, izay ho mpampiasa ny kaontenera ny tompony jupyter
, ary ny variable $USER
dia hamaritra ny mpampiasa mpampiantrano anao ho vondrona:
sudo chown 1001000:$USER /home/dv/projects/ipython-notebooks
Hello World! ^
Raha mbola manana session console misokatra ao anaty container miaraka amin'ny jupyter lab, dia avereno amin'ny fanalahidy vaovao izany --notebook-dir
amin'ny fametrahana ny sandany /mnt/hostfs
toy ny lalana mankany amin'ny fakan'ny solosaina finday ao amin'ny fitoeran'ny fitaovana noforoninay tamin'ny dingana teo aloha:
jupyter lab --ip=0.0.0.0 --no-browser --notebook-dir=/mnt/hostfs
Dia mandehana any amin'ny pejy http://10.0.5.5:8888 ary mamorona solosaina findainao voalohany amin'ny fipihana ny bokotra eo amin'ny pejy araka ny aseho amin'ny sary etsy ambany:
Avy eo, ao amin'ny saha eo amin'ny pejy, ampidiro ny code Python izay hampiseho ny mahazatra Hello World!
. Rehefa vita ny fidirana dia tsindrio CTRL+ENTER
na ny bokotra "milalao" eo amin'ny barazy eo an-tampony mba hahatonga an'i JupyterLab hanao izao:
Amin'izao fotoana izao, saika ny zava-drehetra dia efa vonona hampiasaina, saingy tsy mahaliana izany raha tsy mametraka modules Python fanampiny (fampiharana feno) izay afaka manitatra be ny fahaizan'ny Python amin'ny jupyter lab, noho izany, andao hiroso :)
PS Ny mahaliana dia ny fampiharana taloha jupyter eo ambanin'ny anarana kaody Jupyter Notebook tsy lasa ary misy mifanaraka amin'izany jupyter lab. Raha hifindra amin'ny dikan-teny taloha, araho ny rohy manampy ny tovana amin'ny adiresy/tree
, ary ny fifindrana amin'ny dikan-teny vaovao dia atao miaraka amin'ny tovana /lab
, fa tsy voatery ho voafaritra:
- Jupyter Notebook - http://10.0.5.5:8888/tree
- Jupyter Lab - http://10.0.5.5:8888/lab
Manitatra ny fahaizan'ny Python ^
Ato amin'ity fizarana ity dia hametraka modules fiteny Python mahery vaika toy ny NomPy, pandas, matplotlib, IPyWidgets ny vokatr'izany dia ampidirina amin'ny solosaina finday jupyter lab.
Alohan'ny hametrahana ireo maody Python voatanisa amin'ny alΓ lan'ny mpitantana ny fonosana pip
tsy maintsy mamaha ny fiankinan'ny rafitra amin'ny Alpine Linux aloha isika:
g++
- Ilaina amin'ny fanangonana modules, satria ny sasany amin'izy ireo dia ampiharina amin'ny fiteny C ++ ary mifandray amin'ny Python amin'ny fotoana fampandehanana toy ny modules binaryfreetype-dev
- fiankinan-doha amin'ny module Python matplotlib
Fametrahana miankina:
lxc exec jupyterlab -- apk add g++ freetype-dev
Misy olana iray: amin'ny toetry ny fizarana Alpine Linux amin'izao fotoana izao, dia tsy azo atao ny manangona ny dikan-teny NumPy vaovao; hisy hadisoana amin'ny fanangonana izay tsy ho vitako:
ERROR: Tsy afaka nanamboatra kodiarana ho an'ny numpy izay mampiasa PEP 517 ary tsy azo apetraka mivantana
Noho izany, hametraka ity mΓ΄dely ity ho toy ny fonosana rafitra izay mizara dikan-teny efa voaangona, saingy antitra kokoa noho izay hita ao amin'ny tranokala amin'izao fotoana izao:
lxc exec jupyterlab -- apk add py3-numpy py3-numpy-dev
Manaraka, apetraho ny modules Python amin'ny alΓ lan'ny mpitantana ny fonosana pip
. Azafady, mahareta fa hatambatra ny modules sasany ary mety haharitra minitra vitsivitsy. Ao amin'ny masiniko, naharitra ~ 15 minitra ny fanangonana:
lxc exec jupyterlab -- python3 -m pip install pandas ipywidgets matplotlib
Manadio ny cache fametrahana:
lxc exec jupyterlab -- rm -rf /home/*/.cache/pip/*
lxc exec jupyterlab -- rm -rf /root/.cache/pip/*
Fitsapana modules ao amin'ny JupyterLab ^
Raha mihazakazaka ianao jupyter lab, avereno indray izany mba hihetsika ireo maody vao napetraka. Mba hanaovana izany, amin'ny fivoriana console, tsindrio CTRL+C
izay anananao azy ary midira y
hampitsahatra ny fangatahana ary manomboka indray jupyter lab amin'ny fanindriana ny zana-tsipìka miakatra eo amin'ny klavier mba tsy hiditra ny baiko indray ary avy eo Enter
hanombohana azy:
jupyter lab --ip=0.0.0.0 --no-browser --notebook-dir=/mnt/hostfs
Mandehana mankany amin'ny pejy http://10.0.5.5:8888/lab na havaozy ny pejy amin'ny navigateur, ary ampidiro ao amin'ny sela kahie vaovao ity kaody manaraka ity:
%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
Tokony hahazo vokatra toy ny amin'ny sary etsy ambany ianao, aiza IPyWidgets mamorona singa UI amin'ny pejy izay mifandray amin'ny kaody loharano, ary koa matplotlib dia mampiseho ny vokatry ny kaody amin'ny endrika sary ho toy ny grafika asa:
Ohatra maro IPyWidgets azonao jerena ao amin'ny lesona eto
Dia inona koa? ^
Tsara raha nijanona ianao ary nahatratra ny faran'ny lahatsoratra. Niniako tsy nandefa script efa vita tany amin'ny faran'ny lahatsoratra izay hametraka jupyter lab amin'ny "click iray" mba hamporisihana ny mpiasa :) Saingy azonao atao ny manao izany, satria efa fantatrao ny fomba, rehefa nanangona ny baiko tao anaty script Bash tokana :)
Azonao atao koa ny:
- Mametraha anaran-tambajotra ho an'ny kaontenera fa tsy adiresy IP amin'ny fanoratana azy amin'ny teny tsotra
/etc/hosts
ary soraty ao amin'ny navigateur ny adiresy http://jupyter.local:8888 - Milalao miaraka amin'ny fetran'ny loharanon-karena ho an'ny kaontenera, mba vakio ny toko ao fototra LXD fahaiza-manao na mahazo fampahalalana bebe kokoa amin'ny tranokala mpamorona LXD.
- Hanova ny lohahevitra:
Ary mbola betsaka kokoa azonao atao! Izay ihany. Mirary fahombiazana ho anao aho!
VAOVAO: 15.04.2020/18/30 XNUMX:XNUMX - Nahitsy ny lesoka ao amin'ny toko "Manahoana, izao tontolo izao!"
VAOVAO: 16.04.2020/10/00 XNUMX:XNUMX - Nahitsy sy nampiana lahatsoratra amin'ny famaritana ny fampahavitrihana ny mpitantana fanitarana jupyter lab
VAOVAO: 16.04.2020/10/40 XNUMX:XNUMX - Nahitsy ny lesoka hita tao amin'ny lahatsoratra ary niova kely ho tsara kokoa ny toko "Fametrahana rindrambaiko fototra sy fametrahana ny rafitra"
Source: www.habr.com