Ƙaddamar da Jupyter zuwa cikin LXD orbit

Shin kun taɓa yin gwaji tare da lambar ko abubuwan amfani da tsarin a cikin Linux don kada ku damu da tsarin tushe kuma kar ku rushe komai idan akwai kuskure a cikin lambar da yakamata kuyi tare da tushen gata?

Amma menene game da gaskiyar cewa bari mu ce kuna buƙatar gwadawa ko gudanar da duk wani gungu na microservices daban-daban akan na'ura ɗaya? Dari ko ma dubu?

Tare da injunan kama-da-wane da ke sarrafa su ta hanyar hypervisor, irin waɗannan matsalolin za su iya kuma za a iya magance su, amma ta wane farashi? Misali, akwati a cikin LXD dangane da rarrabawar Linux Alpine yana cinyewa kawai 7.60MB RAM, da kuma inda tushen bangare ya mamaye bayan farawa 9.5MB! Yaya kuke son hakan, Elon Musk? Ina ba da shawarar dubawa ainihin damar LXD - tsarin kwantena a cikin Linux

Bayan ya bayyana a sarari gabaɗaya menene kwantena na LXD, bari mu ci gaba da tunani, menene idan akwai irin wannan dandamali mai girbi inda zaku iya gudanar da lambar lafiya ga mai watsa shiri, samar da zane-zane, a hankali (a cikin hulɗa) haɗin widget ɗin UI tare da lambar ku, kari lambar tare da rubutu tare da blackjack... tsarawa? Wani nau'in blog mai mu'amala? Kai... ina son shi! So! 🙂

Dubi karkashin cat inda za mu kaddamar a cikin akwati Tsakar Gida - ƙarni na gaba na ƙirar mai amfani maimakon tsohon Jupyter Notebook, kuma za mu shigar da kayan aikin Python kamar su. Lambobi, Panda, matplotlib, IPyWidgets wanda zai ba ka damar yin duk abin da aka jera a sama kuma ka adana shi duka a cikin fayil na musamman - kwamfutar tafi-da-gidanka na IPython.

Ƙaddamar da Jupyter zuwa cikin LXD orbit

Tsarin tashi daga Orbital ^

Ƙaddamar da Jupyter zuwa cikin LXD orbit

Bari mu zayyana ɗan taƙaitaccen tsarin aiki don sauƙaƙa mana aiwatar da makircin da ke sama:

  • Bari mu shigar da kaddamar da akwati bisa ga kayan rarrabawa Alpine Linux. Za mu yi amfani da wannan rarraba saboda an yi niyya don ƙaranci kuma za mu shigar da software mafi mahimmanci kawai a ciki, babu wani abu mai ban mamaki.
  • Bari mu ƙara ƙarin faifan faifai a cikin akwati mu ba shi suna - hostfs kuma saka shi zuwa tsarin fayil ɗin tushen. Wannan faifan zai ba da damar yin amfani da fayiloli akan mai watsa shiri daga wani kundin da aka bayar a cikin akwati. Don haka, bayananmu za su kasance masu zaman kansu daga kwantena. Idan an share akwati, bayanan za su kasance a kan mai watsa shiri. Hakanan, wannan makirci yana da amfani don raba bayanai iri ɗaya tsakanin kwantena da yawa ba tare da amfani da daidaitattun hanyoyin sadarwa na rarraba kwantena ba.
  • Bari mu shigar da Bash, sudo, dakunan karatu masu mahimmanci, ƙara da daidaita mai amfani da tsarin
  • Bari mu shigar da Python, kayayyaki kuma mu tattara abubuwan dogaro da su
  • Bari mu shigar da kaddamar Tsakar Gida, siffanta bayyanar, shigar da kari don shi.

A cikin wannan labarin za mu fara tare da ƙaddamar da akwati, ba za mu yi la'akari da shigarwa da daidaitawa LXD ba, za ku iya samun duk wannan a cikin wani labarin - Abubuwan asali na LXD - tsarin kwantena na Linux.

Shigarwa da daidaita tsarin tsarin asali ^

Mun ƙirƙiri akwati tare da umarnin da muka ƙayyade hoton - alpine3, mai gano akwati - jupyterlab kuma, idan ya cancanta, bayanan martaba:

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

Anan ina amfani da bayanin martaba hddroot wanda ke ƙayyadaddun ƙirƙirar akwati tare da ɓangaren tushe a ciki Pool Adana dake kan faifan HDD na zahiri:

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

Wannan yana ba ni damar yin gwaji tare da kwantena akan faifan HDD, adana albarkatu na faifan SSD, wanda kuma yana cikin tsarina 🙂 wanda na ƙirƙiri bayanin martaba na daban. ssdroot.

Bayan an halicci akwati, yana cikin jihar STOPPED, don haka muna buƙatar farawa ta hanyar gudanar da tsarin init a ciki:

lxc start jupyterlab

Bari mu nuna jerin kwantena a cikin LXD ta amfani da maɓallin -c wanda ke nuni da wane cnuni na olumns:

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

Lokacin ƙirƙirar akwati, an zaɓi adireshin IP ba da gangan ba, tunda mun yi amfani da bayanin martaba default wanda a baya aka saita a cikin labarin Abubuwan asali na LXD - tsarin kwantena na Linux.

Za mu canza wannan adireshin IP zuwa mafi abin tunawa ta hanyar ƙirƙirar hanyar sadarwa a matakin kwantena, kuma ba a matakin bayanin martaba kamar yadda yake a yanzu a cikin tsarin yanzu ba. Ba lallai ne ku yi wannan ba, kuna iya tsallake shi.

Ƙirƙirar hanyar sadarwa ta hanyar sadarwa eth0 wanda muke dangantawa da sauyawa (gadar hanyar sadarwa) lxdbr0 A cikin abin da muka kunna NAT bisa ga labarin da ya gabata kuma akwati yanzu za ta sami damar shiga Intanet, kuma mun sanya adireshin IP na tsaye ga mai dubawa - 10.0.5.5:

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

Bayan ƙara na'ura, dole ne a sake kunna akwati:

lxc restart jupyterlab

Duba halin kwantena:

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

Shigar da asali software da kuma kafa tsarin ^

Don sarrafa kwandon mu, kuna buƙatar shigar da software mai zuwa:

Package
description

Bash
GNU Bourne Again harsashi

bash-cimmala
Ƙaddamar da shirye-shirye don harsashi bash

sudo
Ba wa wasu masu amfani ikon gudanar da wasu umarni azaman tushen

inuwa
Kalmar wucewa da kayan aikin sarrafa asusu tare da goyan bayan fayilolin inuwa da PAM

tzdata
Tushen don yankin lokaci da bayanan lokacin adana hasken rana

Nano
Pico editan clone tare da haɓakawa

Bugu da ƙari, zaku iya shigar da tallafi a cikin shafukan mutum-mutum ta hanyar shigar da fakiti masu zuwa - man man-pages mdocml-apropos less

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

Bari mu kalli umarni da maɓallan da muka yi amfani da su:

  • lxc - Kira abokin ciniki LXD
  • exec - Hanyar abokin ciniki LXD wanda ke gudanar da umarni a cikin akwati
  • jupyterlab - ID na kwantena
  • -- - Maɓalli na musamman wanda ke ƙayyade kar a fassara ƙarin maɓalli azaman maɓallan don lxc sannan a wuce sauran kirtani kamar yadda yake ga akwati
  • apk - Manajan kunshin rarraba Linux Alpine
  • add - Hanyar sarrafa fakitin da ke shigar da fakiti da aka ƙayyade bayan umarnin

Na gaba, za mu saita yankin lokaci a cikin tsarin. Europe/Moscow:

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

Bayan shigar da yankin lokaci, kunshin tzdata ba a buƙatar ƙarin a cikin tsarin, zai ɗauki sarari, don haka bari mu goge shi:

lxc exec jupyterlab -- apk del tzdata

Duba yankin lokaci:

lxc exec jupyterlab -- date

Wed Apr 15 10:49:56 MSK 2020

Don kar a ɓata lokaci mai yawa don saita Bash don sababbin masu amfani a cikin akwati, a cikin matakai masu zuwa za mu kwafi fayilolin skel da aka shirya daga tsarin rundunar zuwa gare shi. Wannan zai ba ku damar ƙawata Bash a cikin akwati tare da mu'amala. Tsarin mai masaukina shine Manjaro Linux da fayilolin da ake kwafi /etc/skel/.bash_profile, /etc/skel/.bashrc, /etc/skel/.dir_colors bisa ka'ida sun dace da Alpine Linux kuma ba sa haifar da matsaloli masu mahimmanci, amma kuna iya samun rarraba daban kuma kuna buƙatar gano da kansa idan akwai kuskure yayin gudanar da Bash a cikin akwati.

Kwafi fayilolin skel zuwa akwati. Maɓalli --create-dirs za su ƙirƙiri kundayen adireshi masu mahimmanci idan babu su:

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

Don mai amfani da tushen da ya riga ya kasance, kwafi fayilolin skel da aka kwafi a cikin akwati zuwa kundin adireshin gida:

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 yana shigar da tsarin harsashi don masu amfani /bin/sh, za mu maye gurbinsa da shi root mai amfani in Bash:

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

cewa root mai amfani ba mara kalmar sirri ba, yana buƙatar saita kalmar sirri. Umurni mai zuwa zai samar da kuma saita masa sabon kalmar sirri, wanda zaku gani akan allon wasan bidiyo bayan an kashe shi:

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

Hakanan, bari mu ƙirƙiri sabon mai amfani da tsarin - jupyter wanda zamu tsara daga baya Tsakar Gida:

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

Bari mu samar da kuma saita kalmar sirri don shi:

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

Na gaba, za mu aiwatar da umarni biyu, na farko zai haifar da rukunin tsarin sudo, kuma na biyu zai ƙara mai amfani da shi jupyter:

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

Bari mu ga menene ƙungiyoyin mai amfani jupyter:

lxc exec jupyterlab -- id -Gn jupyter

jupyter sudo

Komai yayi kyau, mu ci gaba.

Ba da izini ga duk masu amfani waɗanda suke membobin ƙungiyar sudo amfani da umarni sudo. Don yin wannan, gudanar da rubutun mai zuwa, inda sed uncomments da siga line a cikin sanyi fayil /etc/sudoers:

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

Shigarwa da daidaita JupyterLab ^

Tsakar Gida aikace-aikacen Python ne, don haka dole ne mu fara shigar da wannan fassarar. Hakanan, Tsakar Gida za mu shigar ta amfani da mai sarrafa kunshin Python pip, kuma ba tsarin daya ba, saboda yana iya zama tsoho a cikin ma'ajin tsarin sabili da haka, dole ne mu warware abubuwan dogaro da hannu da hannu ta hanyar shigar da fakiti masu zuwa - python3 python3-dev gcc libc-dev zeromq-dev:

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

Bari mu sabunta kayan aikin Python da manajan fakiti pip zuwa sigar yanzu:

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

Shigar Tsakar Gida ta hanyar sarrafa kunshin pip:

lxc exec jupyterlab -- python3 -m pip install jupyterlab

Tun da kari a Tsakar Gida gwaji ne kuma ba a jigilar su bisa hukuma tare da kunshin jupyterlab ba, don haka dole ne mu shigar da daidaita shi da hannu.

Bari mu shigar da NodeJS da manajan kunshin don shi - NPM, tun Tsakar Gida yana amfani da su don kari:

lxc exec jupyterlab -- apk add nodejs npm

Zuwa kari ga Tsakar Gida wanda za mu shigar ya yi aiki, suna buƙatar shigar da su a cikin kundin adireshi tun lokacin da za a ƙaddamar da aikace-aikacen daga mai amfani jupyter. Matsalar ita ce babu wani siga a cikin umarnin ƙaddamarwa wanda za a iya wuce shi zuwa kundin adireshi; aikace-aikacen yana karɓar canjin yanayi kawai don haka dole ne mu ayyana shi. Don yin wannan, za mu rubuta umarnin fitarwa mai canzawa JUPYTERLAB_DIR a cikin mahallin mai amfani jupyter, da fayil .bashrcwanda ake aiwatarwa duk lokacin da mai amfani ya shiga:

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

Umurni na gaba zai shigar da tsawo na musamman - mai sarrafa tsawo a ciki Tsakar Gida:

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

Yanzu komai yana shirye don ƙaddamar da farko Tsakar Gida, amma har yanzu muna iya shigar da ƴan kari masu amfani:

  • toc - Tebur na Abubuwan ciki, yana haifar da jerin kanun labarai a cikin labarin / littafin rubutu
  • jupyterlab-horizon-theme - UI taken
  • jupyterlab_neon_theme - UI taken
  • jupyterlab-ubu-theme - Wani kuma taken daga marubucin wannan labarin :) Amma a wannan yanayin, za a nuna shigarwa daga wurin ajiyar GitHub

Don haka, gudanar da umarni masu zuwa a jere don shigar da waɗannan kari:

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"

Bayan shigar da kari, dole ne mu tattara su, tunda a baya, yayin shigarwa, mun ƙayyade maɓalli --no-build don adana lokaci. Yanzu za mu yi sauri sosai ta hanyar haɗa su tare a tafi ɗaya:

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

Yanzu gudanar da waɗannan umarni guda biyu don gudanar da shi a karon farko Tsakar Gida. Zai yiwu a ƙaddamar da shi tare da umarni ɗaya, amma a wannan yanayin, umarnin ƙaddamarwa, wanda ke da wuyar tunawa a cikin zuciyarka, za a tuna da shi ta hanyar bash a cikin akwati, kuma ba a kan mai watsa shiri ba, inda akwai isasshen umarni. don rubuta su a cikin tarihi :)

Shiga cikin akwati azaman mai amfani jupyter:

lxc exec jupyterlab -- su -l jupyter

Na gaba, gudu Tsakar Gida tare da maɓalli da sigogi kamar yadda aka nuna:

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

Jeka adireshin da ke cikin burauzar gidan yanar gizon ku http://10.0.5.5:8888 kuma a shafin da yake buɗewa shiga Alama samun damar da za ku gani a cikin na'ura wasan bidiyo. Kwafi da liƙa a shafin, sannan danna Shiga. Bayan shiga, je zuwa menu na kari na hagu, kamar yadda aka nuna a hoton da ke ƙasa, inda za a umarce ku, lokacin kunna mai sarrafa tsawo, don ɗaukar haɗarin tsaro ta hanyar shigar da kari daga wasu na uku wanda umarnin ya ba ku. Ci gaban JupyterLab ba shi da alhakin:

Ƙaddamar da Jupyter zuwa cikin LXD orbit

Koyaya, muna ware gaba ɗaya Tsakar Gida da kuma sanya shi a cikin akwati domin kari na ɓangare na uku da ke buƙata da amfani da NodeJS ba za su iya aƙalla sata bayanai akan faifai ban da waɗanda muka buɗe a cikin akwati. Samu takardunku na sirri akan mai watsa shiri a ciki /home Hanyoyin da aka samo daga kwandon ba su da wuya su yi nasara, kuma idan sun yi, to, kana buƙatar samun dama ga fayiloli akan tsarin rundunar, tun da muna gudanar da akwati a ciki. yanayin rashin gata. Dangane da wannan bayanin, zaku iya tantance haɗarin haɗa kari a ciki Tsakar Gida.

Ƙirƙiri littattafan rubutu na IPython (shafukan cikin Tsakar Gida) yanzu za a ƙirƙira a cikin kundin adireshin gida na mai amfani - /home/jupyter, amma shirye-shiryen mu shine raba bayanai (raba) tsakanin mai watsa shiri da kwantena, don haka komawa zuwa na'ura mai kwakwalwa kuma ku tsaya. Tsakar Gida ta hanyar aiwatar da hotkey - CTRL+C da amsawa y bisa bukata. Sannan ƙare zaman hulɗar mai amfani jupyter kammala hotkey CTRL+D.

Raba bayanai tare da mai watsa shiri ^

Don raba bayanai tare da mai watsa shiri, kuna buƙatar ƙirƙirar na'ura a cikin akwati wanda zai ba ku damar yin wannan kuma don yin wannan, gudanar da umarni mai zuwa inda muka saka maɓallan masu zuwa:

  • lxc config device add - Umurnin yana ƙara tsarin na'urar
  • jupyter - ID na akwati wanda aka ƙara daidaitawa
  • hostfs - ID na na'ura. Kuna iya saita kowane suna.
  • disk - An nuna nau'in na'urar
  • path - Yana ƙayyade hanyar da ke cikin kwandon da LXD zai hau wannan na'urar
  • source - Ƙayyade tushen, hanyar zuwa kundin adireshi akan mai watsa shiri da kake son rabawa tare da akwati. Ƙayyade hanyar bisa ga abubuwan da kuka zaɓa
lxc config device add jupyterlab hostfs disk path=/mnt/hostfs source=/home/dv/projects/ipython-notebooks

Don kasida /home/dv/projects/ipython-notebooks dole ne a saita izini ga mai amfani da kwantena wanda a halin yanzu yana da UID daidai SubUID + UID, duba babi Tsaro. Gatan Kwantena a cikin labarin Abubuwan asali na LXD - tsarin kwantena na Linux.

Saita izini akan mai gida, inda mai shi zai zama mai amfani da kwantena jupyter, da kuma mai canzawa $USER zai ayyana mai amfani da ku a matsayin ƙungiya:

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

Sannu Duniya! ^

Idan har yanzu kuna da zaman wasan bidiyo buɗe a cikin akwati tare da Tsakar Gida, sannan sake kunna shi da sabon maɓalli --notebook-dir ta hanyar saita darajar /mnt/hostfs a matsayin hanyar zuwa tushen kwamfyutocin a cikin akwati don na'urar da muka ƙirƙira a mataki na baya:

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

Sannan jeka shafin http://10.0.5.5:8888 sannan ka kirkiri kwamfutar tafi-da-gidanka ta farko ta danna maballin da ke shafin kamar yadda aka nuna a hoton da ke ƙasa:

Ƙaddamar da Jupyter zuwa cikin LXD orbit

Sannan, a filin da ke shafin, shigar da lambar Python wanda zai nuna classic Hello World!. Idan kun gama shigarwa, danna CTRL+ENTER ko maɓallin "wasa" akan kayan aiki a saman don samun JupyterLab yayi wannan:

Ƙaddamar da Jupyter zuwa cikin LXD orbit

A wannan gaba, kusan komai yana shirye don amfani, amma ba zai zama mai ban sha'awa ba idan ba mu shigar da ƙarin kayan aikin Python ba (cikakkun aikace-aikacen aikace-aikacen) waɗanda za su iya faɗaɗa daidaitattun damar Python a ciki. Tsakar Gida, don haka, bari mu ci gaba :)

PS Abu mai ban sha'awa shine tsohuwar aiwatarwa jupyter karkashin sunan code Jupyter Notebook bai tafi ba kuma yana nan a layi daya da Tsakar Gida. Don canjawa zuwa tsohon sigar, bi hanyar haɗin da ke ƙara ƙaranci a cikin adireshin/tree, kuma ana aiwatar da canji zuwa sabon sigar tare da kari /lab, amma ba sai an fayyace shi ba:

Fadada iyawar Python ^

A cikin wannan sashe, za mu shigar da nau'ikan yaren Python masu ƙarfi kamar Lambobi, Panda, matplotlib, IPyWidgets sakamakon wanda aka haɗa cikin kwamfutar tafi-da-gidanka Tsakar Gida.

Kafin shigar da samfuran Python da aka jera ta hanyar mai sarrafa fakiti pip dole ne mu fara warware tushen tsarin a cikin Alpine Linux:

  • g++ - Ana buƙatar tattara kayayyaki, tun da ana aiwatar da wasu daga cikinsu a cikin harshe C ++ kuma haɗa zuwa Python a lokacin aiki azaman tsarin binary
  • freetype-dev - dogara ga Python module matplotlib

Sanya abubuwan dogaro:

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

Akwai matsala ɗaya: a halin yanzu na Alpine Linux rarraba, ba zai yiwu a haɗa sabon sigar NumPy ba; kuskuren tattarawa zai bayyana wanda na kasa warwarewa:

ERROR: Ba za a iya gina ƙafafun don lambobi waɗanda ke amfani da PEP 517 kuma ba za a iya shigar da su kai tsaye ba

Don haka, za mu shigar da wannan tsarin azaman fakitin tsarin da ke rarraba sigar da aka riga aka haɗa, amma ɗan tsufa fiye da abin da ake samu a rukunin yanar gizon yanzu:

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

Na gaba, shigar da kayan aikin Python ta hanyar mai sarrafa kunshin pip. Da fatan za a yi haƙuri kamar yadda wasu kayayyaki za su tattara kuma suna iya ɗaukar mintuna kaɗan. A kan injina, haɗawar ta ɗauki ~ 15 mintuna:

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

Share caches na shigarwa:

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

Samfuran gwaji a cikin JupyterLab ^

Idan kuna gudu Tsakar Gida, sake kunna shi domin an kunna sabbin na'urorin da aka shigar. Don yin wannan, a cikin zaman wasan bidiyo, danna CTRL+C inda kake da shi a guje ka shiga y don dakatar da buƙatar sannan a sake farawa Tsakar Gida ta hanyar latsa kibiya ta sama akan madannai don kar a sake shigar da umarnin sannan sannan Enter fara shi:

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

Je zuwa shafin http://10.0.5.5:8888/lab ko sake sabunta shafin a cikin burauzar ku, sannan shigar da lambar mai zuwa a cikin sabon tantanin halitta:

%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

Ya kamata ku sami sakamako kamar a hoton da ke ƙasa, inda IPyWidgets yana haifar da ɓangarori na UI akan shafin da ke hulɗa tare da lambar tushe, da kuma matplotlib yana nuna sakamakon lambar a sigar hoto azaman jadawali mai aiki:

Ƙaddamar da Jupyter zuwa cikin LXD orbit

Misalai da yawa IPyWidgets za ku iya samun shi a cikin koyawa a nan

Me kuma? ^

Da kyau idan kun tsaya kuma kun isa ƙarshen labarin. Da gangan ban buga rubutun da aka shirya ba a ƙarshen labarin da zai girka Tsakar Gida a cikin "latsa ɗaya" don ƙarfafa ma'aikata :) Amma za ku iya yin shi da kanku, tun da kun riga kun san yadda, bayan tattara umarni a cikin rubutun Bash guda ɗaya :)

Hakanan zaka iya:

  • Saita sunan cibiyar sadarwa don akwati maimakon adireshin IP ta rubuta shi cikin sauƙi /etc/hosts sannan ka rubuta adreshin a cikin burauzar http://jupyter.local:8888
  • Yi wasa tare da iyakar albarkatun gandun daji, don wannan karanta babi a ciki ainihin damar LXD ko samun ƙarin bayani akan rukunin haɓaka LXD.
  • Canza jigon:

Ƙaddamar da Jupyter zuwa cikin LXD orbit

Kuma da yawa za ku iya yi! Shi ke nan. Ina yi muku fatan nasara!

LABARI: 15.04.2020/18/30 XNUMX:XNUMX - Kurakurai da aka gyara a cikin babin "Sannu, Duniya!"
LABARI: 16.04.2020/10/00 XNUMX:XNUMX - Gyara da ƙara rubutu a cikin kwatancin kunnawa mai sarrafa tsawo Tsakar Gida
LABARI: 16.04.2020/10/40 XNUMX:XNUMX - An gyara kurakurai a cikin rubutu kuma an canza su don mafi kyawun babin "Shigar da software na asali da kafa tsarin"

source: www.habr.com

Add a comment