Kukhazikitsa Jupyter mu LXD orbit

Kodi mudayesapo kugwiritsa ntchito ma code kapena machitidwe mu Linux osadandaula ndi dongosolo lomwe lili pansi ndikugwetsa chilichonse ngati pangakhale cholakwika mu code yomwe ikuyenera kukhala ndi mwayi wokhala ndi mizu?

Koma bwanji ponena kuti tinene kuti muyenera kuyesa kapena kuyendetsa gulu lonse la ma microservices osiyanasiyana pamakina amodzi? Za zana kapena ngakhale chikwi?

Ndi makina enieni oyendetsedwa ndi hypervisor, mavuto oterowo amatha ndipo adzathetsedwa, koma pamtengo wanji? Mwachitsanzo, chidebe mu LXD kutengera kugawa kwa Alpine Linux chimangodya 7.60MB RAM, ndi komwe magawo a mizu amakhala atayamba 9.5MB! Kodi mumakonda bwanji izi, Elon Musk? Ndikupangira kuyang'ana kuthekera koyambira kwa LXD - makina otengera mu Linux

Zitadziwika bwino kuti zotengera za LXD ndi ziti, tiyeni tipite patsogolo ndikuganiza, bwanji ngati pangakhale nsanja yotereyi pomwe mutha kuyendetsa bwino kachidindo ka wolandila, kupanga ma graph, kulumikiza ma UI- widget ndi code yanu, onjezani khodi ndi mawu ndi blackjack... masanjidwe? Mabulogu amtundu wanji? Wow... Ndikufuna! Ndikufuna! πŸ™‚

Yang'anani pansi pa mphaka momwe tidzayambitsire mu chidebe jupyter lab - m'badwo wotsatira wa ogwiritsa ntchito m'malo mwa Jupyter Notebook yakale, ndipo tidzakhazikitsanso ma module a Python monga Chiwerengero, Pandas, Matlotlib, IPyWidgets zomwe zingakuthandizeni kuchita zonse zomwe zalembedwa pamwambapa ndikusunga zonse mu fayilo yapadera - laputopu ya IPython.

Kukhazikitsa Jupyter mu LXD orbit

Dongosolo la kunyamuka kwa Orbital ^

Kukhazikitsa Jupyter mu LXD orbit

Tiyeni tifotokoze mwachidule ndondomeko yachidule kuti zitheke kuti tigwiritse ntchito ndondomeko yomwe ili pamwambapa:

  • Tiyeni tiyike ndikuyambitsa chidebe chotengera zida zogawa Linux Alpine. Tidzagwiritsa ntchito kugawa kumeneku chifukwa cholinga chake ndi minimalism ndipo tidzakhazikitsa mapulogalamu ofunikira kwambiri momwemo, palibe chowonjezera.
  • Tiyeni tiwonjezere diski yowonjezera mu chidebe ndikuchipatsa dzina - hostfs ndikuyiyika ku mizu yamafayilo. Diski iyi ipangitsa kuti zitheke kugwiritsa ntchito mafayilo omwe ali pa host kuchokera ku bukhu loperekedwa mkati mwa chidebe. Choncho, deta yathu idzakhala yodziimira pa chidebecho. Ngati chidebecho chitachotsedwa, deta idzakhalabe pa wolandirayo. Komanso, chiwembuchi ndi chothandiza pogawana zomwezo pakati pa zotengera zambiri popanda kugwiritsa ntchito njira zofananira zogawa zotengera.
  • Tiyeni tiyike Bash, sudo, malaibulale ofunikira, onjezani ndikusintha wogwiritsa ntchito
  • Tiyeni tiyike Python, ma modules ndikuphatikiza zodalira za binary kwa iwo
  • Tiyeni tiyike ndikuyambitsa jupyter lab, sinthani mawonekedwe ake, yikani zowonjezera zake.

M'nkhaniyi tiyamba ndikuyambitsa chidebecho, sitingaganizire kukhazikitsa ndi kukonza LXD, mungapeze zonsezi m'nkhani ina - Zofunikira za LXD - Linux zotengera makina.

Kuyika ndi kasinthidwe kachitidwe koyambira ^

Timapanga chidebe ndi lamulo momwe timafotokozera chithunzicho - alpine3, chizindikiritso cha chidebecho - jupyterlab ndipo, ngati kuli kofunikira, ma profailo osintha:

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

Apa ndikugwiritsa ntchito mbiri yosinthira hddroot zomwe zimatanthawuza kupanga chidebe chokhala ndi mizu yogawa mkati Dziwe Losungira ili pa disk hard 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

Izi zimandipatsa mwayi woyesera zotengera pa disk ya HDD, ndikusunga zinthu za SSD disk, yomwe imapezekanso mu dongosolo langa πŸ™‚ lomwe ndapanga mbiri yosiyana yosinthira. ssdroot.

Pambuyo popanga chidebecho, chimakhala m'boma STOPPED, kotero tiyenera kuyiyambitsa ndikuyendetsa init system mmenemo:

lxc start jupyterlab

Tiyeni tiwonetse mndandanda wazotengera mu LXD pogwiritsa ntchito kiyi -c zomwe zimasonyeza kuti cchiwonetsero chazithunzi:

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

Popanga chidebecho, adilesi ya IP idasankhidwa mwachisawawa, popeza tidagwiritsa ntchito mbiri yosinthira default zomwe zidakonzedwa kale m'nkhaniyi Zofunikira za LXD - Linux zotengera makina.

Tisintha adilesi iyi ya IP kukhala yosaiΕ΅alika popanga mawonekedwe a netiweki pamlingo wa chidebe, osati pamlingo wokonzekera monga momwe zilili pano. Simukuyenera kuchita izi, mutha kulumpha.

Kupanga mawonekedwe a netiweki eth0 zomwe timagwirizanitsa ndi switch (network bridge) lxdbr0 momwe tidathandizira NAT molingana ndi nkhani yapitayi ndipo chidebecho tsopano chikhala ndi intaneti, komanso timapereka adilesi ya IP yokhazikika pamawonekedwe - 10.0.5.5:

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

Mukawonjezera chipangizo, chidebecho chiyenera kuyambiranso:

lxc restart jupyterlab

Kuyang'ana momwe chotengeracho chilili:

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

Kukhazikitsa mapulogalamu oyambira ndikukhazikitsa dongosolo ^

Kuti mugwiritse ntchito chotengera chathu, muyenera kukhazikitsa mapulogalamu otsatirawa:

phukusi
Kufotokozera

bash
Chipolopolo cha GNU Bourne Again

bash-kumaliza
Kumaliza kokonzekera kwa chipolopolo cha bash

sudo
Perekani ena ogwiritsa ntchito mwayi woyendetsa malamulo ena ngati mizu

Mthunzi
Chida chachinsinsi ndi kasamalidwe ka akaunti chothandizira mafayilo azithunzi ndi PAM

tzdata
Magwero a nthawi ndi nthawi yopulumutsa masana

Nano
Pico editor clone ndi zowonjezera

Kuphatikiza apo, mutha kukhazikitsa chithandizo mumasamba amunthu mwa kukhazikitsa maphukusi otsatirawa - man man-pages mdocml-apropos less

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

Tiyeni tiwone malamulo ndi makiyi omwe tidagwiritsa ntchito:

  • lxc - Imbani kasitomala wa LXD
  • exec - Njira ya kasitomala ya LXD yomwe imayendetsa lamulo mu chidebe
  • jupyterlab - Container ID
  • -- - Kiyi yapadera yomwe imanena kuti musatanthauzire makiyi ena ngati makiyi a lxc ndipo perekani chingwe chotsalacho monga momwe amachitira ndi mtsuko
  • apk - Woyang'anira phukusi la Alpine Linux
  • add - Njira yoyang'anira phukusi yomwe imayika mapaketi omwe atchulidwa pambuyo pa lamulo

Pambuyo pake, tidzakhazikitsa nthawi yanthawi mu dongosolo. Europe/Moscow:

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

Pambuyo kukhazikitsa zone nthawi, phukusi tzdata sichifunikanso m'dongosolo, idzatenga malo, choncho tiyeni tichite:

lxc exec jupyterlab -- apk del tzdata

Kuyang'ana nthawi:

lxc exec jupyterlab -- date

Wed Apr 15 10:49:56 MSK 2020

Kuti tisawononge nthawi yambiri ndikukhazikitsa Bash kwa ogwiritsa ntchito atsopano mumtsuko, muzotsatira zotsatirazi tidzakopera mafayilo opangidwa okonzeka a skel kuchokera ku makina osungirako. Izi zikuthandizani kuti muwonetsere Bash mu chidebe molumikizana. Dongosolo langa lothandizira ndi Manjaro Linux ndipo mafayilo akukopera /etc/skel/.bash_profile, /etc/skel/.bashrc, /etc/skel/.dir_colors kwenikweni ndi oyenera Alpine Linux ndipo sizimayambitsa mavuto ovuta, koma mutha kukhala ndi magawo osiyanasiyana ndipo muyenera kudziyesa nokha ngati pali cholakwika pakuyendetsa Bash mu chidebe.

Lembani mafayilo a skel ku chidebe. Chinsinsi --create-dirs adzapanga zolembera zofunika ngati palibe:

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

Kwa wogwiritsa ntchito mizu, koperani mafayilo a skel omwe angokopedwa mu chidebe kupita ku chikwatu chakunyumba:

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 imayika chipolopolo cha ogwiritsa ntchito /bin/sh, tidzalowetsamo root wogwiritsa ntchito ku Bash:

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

kuti root wosuta sanali achinsinsi, ayenera kukhazikitsa achinsinsi. Lamulo lotsatirali limupangira ndikumukhazikitsira mawu achinsinsi mwachisawawa, omwe mudzawawone pazenera la console akamaliza kuphedwa:

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

Komanso, tiyeni tipange wogwiritsa ntchito watsopano - jupyter zomwe tidzakonza pambuyo pake jupyter lab:

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

Tiyeni tipange ndikukhazikitsa mawu achinsinsi ake:

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

Kenako, tidzapereka malamulo awiri, woyamba adzapanga gulu dongosolo sudo, ndipo yachiwiri idzawonjezera wogwiritsa ntchito jupyter:

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

Tiyeni tiwone magulu omwe wogwiritsa ntchitoyo ali jupyter:

lxc exec jupyterlab -- id -Gn jupyter

jupyter sudo

Zonse zili bwino, tiyeni tipitirire.

Lolani ogwiritsa ntchito onse omwe ali mgululi sudo gwiritsani ntchito lamulo sudo. Kuti muchite izi, yendetsani script zotsatirazi, kumene sed imatsitsa mzere wa parameter mu fayilo yosinthira /etc/sudoers:

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

Kukhazikitsa ndi kukonza JupyterLab ^

jupyter lab ndi pulogalamu ya Python, chifukwa chake tiyenera kukhazikitsa womasulira uyu. Komanso, jupyter lab tidzakhazikitsa pogwiritsa ntchito Python package manager pip, osati dongosolo limodzi, chifukwa likhoza kukhala lachikale m'malo osungiramo dongosolo ndipo chifukwa chake, tiyenera kuthana ndi zodalira pawo pokhazikitsa mapaketi otsatirawa - python3 python3-dev gcc libc-dev zeromq-dev:

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

Tiyeni tisinthe ma module a python ndi woyang'anira phukusi pip mpaka pano:

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

Sakani jupyter lab kudzera pa package manager pip:

lxc exec jupyterlab -- python3 -m pip install jupyterlab

Popeza zowonjezera mu jupyter lab ndizoyesa ndipo sizimatumizidwa mwalamulo ndi phukusi la jupyterlab, chifukwa chake tiyenera kuyiyika ndikuyikonza pamanja.

Tiyeni tiyike NodeJS ndi woyang'anira phukusi lake - NPM, kuyambira jupyter lab amagwiritsa ntchito zowonjezera zake:

lxc exec jupyterlab -- apk add nodejs npm

Zowonjezera za jupyter lab zomwe tidzakhazikitsa zikugwira ntchito, ziyenera kukhazikitsidwa muzolemba za ogwiritsa ntchito popeza pulogalamuyi idzakhazikitsidwa kuchokera kwa wogwiritsa ntchito jupyter. Vuto ndiloti palibe parameter mu lamulo lokhazikitsa lomwe lingathe kuperekedwa ku bukhu; ntchitoyo imangovomereza kusintha kwa chilengedwe choncho tiyenera kufotokozera. Kuti tichite izi, tidzalemba lamulo la variable export JUPYTERLAB_DIR m'malo ogwiritsa ntchito jupyter, ku file .bashrczomwe zimachitidwa nthawi iliyonse wogwiritsa ntchito akalowa:

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

Lamulo lotsatira lidzakhazikitsa chowonjezera chapadera - 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"

Tsopano zonse zakonzeka kutsegulira koyamba jupyter lab, koma titha kukhazikitsa zowonjezera zingapo zothandiza:

  • toc - Zamkatimu, imapanga mndandanda wamitu munkhani/notebook
  • jupyterlab-horizon-theme - Mutu wa UI
  • jupyterlab_neon_theme - Mutu wa UI
  • jupyterlab-ubu-theme - Winanso mutu wochokera kwa wolemba nkhaniyi :) Koma pakadali pano, kuyika kochokera ku GitHub kudzawonetsedwa

Chifukwa chake, yendetsani malamulo otsatirawa motsatizana kuti muyike zowonjezera izi:

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"

Pambuyo kukhazikitsa zowonjezera, tiyenera kuziphatikiza, popeza m'mbuyomu, pakuyika, tidatchula fungulo --no-build kusunga nthawi. Tsopano tifulumizitsa kwambiri powaphatikiza pamodzi nthawi imodzi:

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

Tsopano yendetsani malamulo awiri otsatirawa kuti muyendetse koyamba jupyter lab. Zingakhale zotheka kuyiyambitsa ndi lamulo limodzi, koma pamenepa, lamulo loyambitsa, lomwe ndi lovuta kukumbukira m'maganizo mwanu, lidzakumbukiridwa ndi bash mu chidebe, osati pa wolandira, kumene kuli malamulo okwanira kale. kuwalemba m'mbiri :)

Lowani mu chidebe ngati wosuta jupyter:

lxc exec jupyterlab -- su -l jupyter

Kenako, thamangani jupyter lab ndi makiyi ndi magawo monga zasonyezedwera:

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

Pitani ku adilesi yomwe ili mu msakatuli wanu http://10.0.5.5:8888 ndi patsamba lomwe likutsegula lowetsani chizindikiro kulowa komwe mudzawona mu console. Koperani ndi kumata pa tsamba, kenako dinani Lowani muakaunti. Pambuyo polowa, pitani ku menyu yowonjezera kumanzere, monga momwe tawonetsera pa chithunzi pansipa, pamene mudzafunsidwa, mukamatsegula woyang'anira yowonjezera, kuti mutenge chiwopsezo cha chitetezo poika zowonjezera kuchokera kwa anthu ena omwe lamuloli limapereka. Kukula kwa JupyterLab alibe udindo:

Kukhazikitsa Jupyter mu LXD orbit

Komabe, timalekanitsa zonse jupyter lab ndikuyiyika mu chidebe kuti zowonjezera za chipani chachitatu zomwe zimafuna ndikugwiritsa ntchito NodeJS sizingathe kuba deta pa disk kupatula zomwe timatsegula mkati mwa chidebecho. Pitani ku zikalata zanu zachinsinsi pa host host in /home njira zochokera m'chidebe sizingayende bwino, ndipo ngati zitero, ndiye kuti muyenera kukhala ndi mwayi pamafayilo pamakina osungira, popeza timayendetsa chidebecho mkati. mode wopanda mwayi. Kutengera chidziwitsochi, mutha kuwunika chiwopsezo chophatikiza zowonjezera mu jupyter lab.

Adapanga zolemba za IPython (masamba mu jupyter lab) tsopano ipangidwa m'ndandanda wanyumba ya wosuta - /home/jupyter, koma mapulani athu ndikugawanitsa deta (kugawana) pakati pa wolandirayo ndi chidebe, choncho bwererani ku console ndikuyimitsa. jupyter lab pochita hotkey - CTRL+C ndi kuyankha y pa pempho. Kenako thetsani gawo la wogwiritsa ntchito jupyter kumaliza hotkey CTRL+D.

Kugawana deta ndi wolandira ^

Kuti mugawane deta ndi wolandirayo, muyenera kupanga chipangizo mu chidebe chomwe chimakulolani kuchita izi ndikuchita izi, yendetsani lamulo ili pamene timatchula makiyi otsatirawa:

  • lxc config device add - Lamulo limawonjezera kasinthidwe kachipangizo
  • jupyter - ID ya chidebe chomwe masinthidwe amawonjezedwa
  • hostfs - Chipangizo ID. Mutha kukhazikitsa dzina lililonse.
  • disk - Mtundu wa chipangizo umasonyezedwa
  • path - Imatchula njira mu chidebe chomwe LXD ikweza chipangizochi
  • source - Tchulani gwero, njira yopita ku chikwatu chomwe mukufuna kugawana ndi chidebecho. Tchulani njirayo malinga ndi zomwe mumakonda
lxc config device add jupyterlab hostfs disk path=/mnt/hostfs source=/home/dv/projects/ipython-notebooks

Za katalogu /home/dv/projects/ipython-notebooks chilolezo chiyenera kukhazikitsidwa kwa wogwiritsa ntchito chidebe yemwe pakali pano ali ndi UID yofanana ndi SubUID + UID, onani mutu Chitetezo. Mwayi wa Container m'nkhani Zofunikira za LXD - Linux zotengera makina.

Khazikitsani chilolezo kwa wolandira, pomwe eni ake azikhala wogwiritsa ntchito zotengera jupyter, ndi kusintha $USER idzafotokozera wogwiritsa ntchito wanu ngati gulu:

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

Moni Dziko Lapansi! ^

Ngati mukadali ndi gawo la console lotsegulidwa mu chidebe ndi jupyter lab, kenako yambaninso ndi kiyi yatsopano --notebook-dir pokhazikitsa mtengo /mnt/hostfs monga njira yopita ku mizu ya laputopu mu chidebe cha chipangizo chomwe tidapanga mu gawo lapitalo:

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

Kenako pitani patsamba http://10.0.5.5:8888 ndikupanga laputopu yanu yoyamba podina batani lomwe lili patsamba monga momwe chithunzi chili pansipa:

Kukhazikitsa Jupyter mu LXD orbit

Kenako, m'munda womwe uli patsamba, lowetsani nambala ya Python yomwe iwonetsa zachikale Hello World!. Mukamaliza kulowa, dinani CTRL+ENTER kapena batani la "play" pazida pamwamba kuti JupyterLab ichite izi:

Kukhazikitsa Jupyter mu LXD orbit

Pakadali pano, pafupifupi chilichonse chakonzeka kugwiritsidwa ntchito, koma sizingakhale zosangalatsa ngati sitiyika ma module owonjezera a Python (mapulogalamu athunthu) omwe amatha kukulitsa luso la Python mu. jupyter lab, chifukwa chake, tiyeni tipitirire :)

PS Chosangalatsa ndichakuti kukhazikitsa kwakale jupyter pansi pa kodi Buku la Jupyter sichinachoke ndipo chilipo molingana ndi jupyter lab. Kuti musinthe ku mtundu wakale, tsatirani ulalo womwe ukuwonjezera mawu oyambira mu adilesi/tree, ndipo kusintha kwa Baibulo latsopano kumachitika ndi suffix /lab, koma siziyenera kutchulidwa:

Kukulitsa luso la Python ^

Mu gawoli, tikhazikitsa ma module amphamvu a Python monga Chiwerengero, Pandas, Matlotlib, IPyWidgets zotsatira zake ndi Integrated mu Malaputopu jupyter lab.

Musanayike ma module a Python omwe adalembedwa kudzera mwa woyang'anira phukusi pip tiyenera choyamba kuthetsa kudalira kwadongosolo ku Alpine Linux:

  • g++ - Zofunikira pakukonza ma module, popeza ena amakhazikitsidwa m'chinenerocho C ++ ndikulumikiza ku Python panthawi yothamanga ngati ma module a binary
  • freetype-dev - kudalira gawo la Python Matlotlib

Kuyika zodalira:

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

Pali vuto limodzi: momwe pakali pano kugawa kwa Alpine Linux, sikungatheke kupanga mtundu watsopano wa NumPy; cholakwika chophatikiza chidzawoneka chomwe sindingathe kuchithetsa:

Cholakwika: Sindinathe kupanga mawilo a numpy omwe amagwiritsa ntchito PEP 517 ndipo sangathe kukhazikitsidwa mwachindunji

Chifukwa chake, tikhazikitsa gawoli ngati pulogalamu yamakina yomwe imagawa mtundu womwe wapangidwa kale, koma wakale pang'ono kuposa womwe ukupezeka patsamba lino:

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

Kenaka, yikani ma modules a Python kupyolera mwa woyang'anira phukusi pip. Chonde khalani oleza mtima chifukwa ma module ena apanga ndipo zingatenge mphindi zochepa. Pa makina anga, kuphatikiza kunatenga ~ mphindi 15:

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

Kuchotsa ma cache oyika:

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

Ma module oyesera mu JupyterLab ^

Ngati mukuthamanga jupyter lab, yambitsaninso kuti ma module omwe adayikidwa kumene ayambitsidwe. Kuti muchite izi, mu gawo la console, dinani CTRL+C kumene muthamanga ndi kulowa y kuyimitsa pempho ndikuyambanso jupyter lab mwa kukanikiza muvi wokwera pa kiyibodi kuti musalowenso lamulo kenako Enter kuti tiyambe:

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

Pitani patsamba http://10.0.5.5:8888/lab kapena tsitsimutsani tsambalo mumsakatuli wanu, kenaka lowetsani khodi ili mu cellbookbook yatsopano:

%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

Muyenera kupeza zotsatira monga chithunzi pansipa, kumene IPyWidgets imapanga chinthu cha UI patsamba lomwe limalumikizana molumikizana ndi code source, komanso Matlotlib akuwonetsa zotsatira za code mu mawonekedwe a chithunzi ngati graph ntchito:

Kukhazikitsa Jupyter mu LXD orbit

Zitsanzo zambiri IPyWidgets mukhoza kuzipeza mu maphunziro apa

China ndi chiyani? ^

Mwachita bwino ngati mudakhala ndikufika kumapeto kwa nkhaniyo. Sindinatumize dala script yopangidwa mokonzeka kumapeto kwa nkhani yomwe idzayike jupyter lab mu "kudina kamodzi" kulimbikitsa ogwira ntchito :) Koma mutha kuchita nokha, popeza mukudziwa kale, mutasonkhanitsa malamulowo mu Bash script imodzi :)

Mukhozanso:

  • Khazikitsani dzina la netiweki lachidebe m'malo mwa adilesi ya IP polemba m'njira yosavuta /etc/hosts ndikulemba adilesi mu msakatuli http://jupyter.local:8888
  • Sewerani mozungulira ndi malire azomwe mungagwiritse ntchito, kuti muwerenge mutuwo zofunikira za LXD kapena dziwani zambiri patsamba la wopanga LXD.
  • Sinthani mutu:

Kukhazikitsa Jupyter mu LXD orbit

Ndipo zambiri zomwe mungachite! Ndizomwezo. Ndikufunirani zabwino!

ZOCHITIKA: 15.04.2020/18/30 XNUMX:XNUMX - Zolakwa zinakonzedwa mumutu wakuti "Moni, Padziko Lonse!"
ZOCHITIKA: 16.04.2020/10/00 XNUMX:XNUMX - Mawu okonzedwa ndikuwonjezedwa pofotokozera za kuyambitsa kwa manejala jupyter lab
ZOCHITIKA: 16.04.2020/10/40 XNUMX:XNUMX - Zolakwika zomwe zidakonzedwa m'mawuwo ndikusintha pang'ono kuti zikhale bwino mutu wakuti "Kukhazikitsa mapulogalamu oyambira ndikukhazikitsa dongosolo"

Source: www.habr.com

Kuwonjezera ndemanga