Oletko koskaan joutunut kokeilemaan koodia tai järjestelmäapuohjelmia Linuxissa, jotta et olisi murehtinut perusjärjestelmästä etkä repiisi kaikkea, jos koodissa tulee virhe, jonka pitäisi toimia pääkäyttäjän oikeuksin?
Mutta entä se, että sanotaan, että sinun on testattava tai suoritettava kokonainen klusteri erilaisia mikropalveluita yhdellä koneella? Sata tai jopa tuhat?
Hypervisorin hallitsemilla virtuaalikoneilla tällaiset ongelmat voidaan ratkaista ja ratkaistaan, mutta millä hinnalla? Esimerkiksi Alpine Linux -jakeluun perustuva LXD-säilö kuluttaa vain 7.60MB
RAM ja missä juuriosio on käynnistyksen jälkeen 9.5MB
! Mitä pidät siitä, Elon Musk? Suosittelen tarkistamaan LXD:n perusominaisuudet - konttijärjestelmä Linuxissa
Kun yleisellä tasolla on käynyt selväksi, mitä LXD-kontit ovat, mennään pidemmälle ja mietitään, mitä jos olisi sellainen harvesterialusta, jossa voisi turvallisesti ajaa koodia isännälle, generoida kaavioita, linkittää dynaamisesti (interaktiivisesti) UI-widgettejä koodiisi, täydentää koodia tekstillä blackjack...-muotoilulla? Jonkinlainen interaktiivinen blogi? Vau... haluan sen! Haluta! 🙂
Katso kissan alta, josta lanseeraamme kontissa jupyter lab - seuraavan sukupolven käyttöliittymä vanhentuneen Jupyter Notebookin tilalle, ja asennamme myös Python-moduuleja, kuten nuhjuinen, Panda, Matplotlib, IPyWidgetit jonka avulla voit tehdä kaiken yllä mainitun ja tallentaa sen kaikki erityiseen tiedostoon - IPython-kannettavaan.
Suunnistus
- Orbitaalinen noususuunnitelma
- Perusjärjestelmän asennus ja konfigurointi
- Perusohjelmiston asennus ja järjestelmän asennus
- JupyterLabin asennus ja konfigurointi
- Tietojen jakaminen isännän kanssa
- Hei maailma!
- Pythonin ominaisuuksien laajentaminen
- Moduulien testaus JupyterLabissa
- Mitä muuta?
Orbitaalinen noususuunnitelma ^
Tehdään lyhyt toimintasuunnitelma, joka helpottaa yllä olevan järjestelmän toteuttamista:
- Asennetaan ja käynnistetään jakelusarjaan perustuva kontti Alpine Linux. Käytämme tätä jakelua, koska se on suunnattu minimalismiin ja asentaa siihen vain tarpeellisimmat ohjelmistot, ei mitään tarpeetonta.
- Lisätään säilöön ylimääräinen virtuaalilevy ja annetaan sille nimi -
hostfs
ja liitä se juuritiedostojärjestelmään. Tämä levy mahdollistaa tiedostojen käytön isännässä annetusta hakemistosta säilön sisällä. Siten tietomme ovat riippumattomia säiliöstä. Jos säilö poistetaan, tiedot säilyvät isännässä. Tämä menetelmä on myös hyödyllinen jaettaessa samaa dataa useiden säilöjen välillä ilman konttijakelun vakioverkkomekanismeja. - Asennetaan Bash, sudo, tarvittavat kirjastot, lisätään ja määritetään järjestelmän käyttäjä
- Asennetaan Python, moduulit ja käännetään niille binääririippuvuudet
- Asennetaan ja käynnistetään jupyter lab, mukauta ulkoasua ja asenna siihen laajennuksia.
Tässä artikkelissa aloitamme kontin käynnistämisellä, emme harkitse LXD:n asentamista ja määrittämistä, löydät kaiken tämän toisesta artikkelista - LXD - Linux-konttijärjestelmien perusominaisuudet.
Perusjärjestelmän asennus ja konfigurointi ^
Luomme säilön komennolla, jossa määritämme kuvan - alpine3
, kontin tunniste - jupyterlab
ja tarvittaessa kokoonpanoprofiilit:
lxc init alpine3 jupyterlab --profile=default --profile=hddroot
Tässä käytän määritysprofiilia hddroot
joka määrittää, että luodaan säilö, jossa on juuriosio Varastointiallas sijaitsee fyysisellä kiintolevyllä:
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
Tämä antaa minulle mahdollisuuden kokeilla HDD-levyllä olevia kontteja säästäen SSD-levyn resursseja, mikä on saatavilla myös järjestelmässäni 🙂 jolle olen luonut erillisen konfigurointiprofiilin ssdroot
.
Kun säilö on luotu, se on tilassa STOPPED
, joten meidän on käynnistettävä se suorittamalla siinä oleva init-järjestelmä:
lxc start jupyterlab
Näytetään konttiluettelo LXD:ssä näppäimen avulla -c
joka osoittaa mitä cpylväiden näyttö:
lxc list -c ns4b
+------------+---------+-------------------+--------------+
| NAME | STATE | IPV4 | STORAGE POOL |
+------------+---------+-------------------+--------------+
| jupyterlab | RUNNING | 10.0.5.198 (eth0) | hddpool |
+------------+---------+-------------------+--------------+
Säilöä luotaessa IP-osoite valittiin satunnaisesti, koska käytimme konfigurointiprofiilia default
joka oli aiemmin määritetty artikkelissa LXD - Linux-konttijärjestelmien perusominaisuudet.
Muutamme tämän IP-osoitteen mieleenpainuvammaksi luomalla verkkorajapinnan säilötasolla, ei konfigurointiprofiilitasolla, kuten se on nyt nykyisessä kokoonpanossa. Sinun ei tarvitse tehdä tätä, voit ohittaa sen.
Verkkoliittymän luominen eth0
jonka linkitämme kytkimeen (verkkosilta) lxdbr0
jossa otimme NAT:n käyttöön edellisen artikkelin mukaisesti ja kontti saa nyt pääsyn Internetiin, ja lisäksi annamme käyttöliittymälle staattisen IP-osoitteen - 10.0.5.5
:
lxc config device add jupyterlab eth0 nic name=eth0 nictype=bridged parent=lxdbr0 ipv4.address=10.0.5.5
Kun laite on lisätty, säilö on käynnistettävä uudelleen:
lxc restart jupyterlab
Säilön tilan tarkistaminen:
lxc list -c ns4b
+------------+---------+------------------+--------------+
| NAME | STATE | IPV4 | STORAGE POOL |
+------------+---------+------------------+--------------+
| jupyterlab | RUNNING | 10.0.5.5 (eth0) | hddpool |
+------------+---------+------------------+--------------+
Perusohjelmiston asennus ja järjestelmän asennus ^
Säilön hallinnointia varten sinun on asennettava seuraava ohjelmisto:
Paketti
Kuvaus
kemut
GNU Bourne Again -kuori
bash-täydennys
Ohjelmoitava täydennys bash-kuorelle
sudo
Anna tietyille käyttäjille mahdollisuus suorittaa joitain komentoja pääkäyttäjänä
varjo
Salasana- ja tilinhallintatyökalupaketti, joka tukee varjotiedostoja ja PAM:ia
tzdata
Aikavyöhyke- ja kesäaikatietojen lähteet
nano
Pico-editorin klooni parannuksilla
Lisäksi voit asentaa tuen järjestelmän man-sivuille asentamalla seuraavat paketit − man man-pages mdocml-apropos less
lxc exec jupyterlab -- apk add bash bash-completion sudo shadow tzdata nano
Katsotaanpa käyttämiämme komentoja ja näppäimiä:
lxc
— Soita LXD-asiakkaalleexec
- LXD-asiakasmenetelmä, joka suorittaa komennon säilössäjupyterlab
— Säilön tunnus--
- Erityinen avain, joka määrittää, ettei muita avaimia tulkita avaiminalxc
ja välitä loput merkkijonosta sellaisenaan säiliöönapk
— Alpine Linux -jakelupakettien hallintaadd
— Paketinhallintamenetelmä, joka asentaa komennon jälkeen määritetyt paketit
Seuraavaksi asetamme aikavyöhykkeen järjestelmässä Europe/Moscow
:
lxc exec jupyterlab -- cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Aikavyöhykkeen asennuksen jälkeen paketti tzdata
ei enää tarvita järjestelmässä, se vie tilaa, joten poistetaan se:
lxc exec jupyterlab -- apk del tzdata
Aikavyöhykkeen tarkistaminen:
lxc exec jupyterlab -- date
Wed Apr 15 10:49:56 MSK 2020
Jotta Bashin asettamiseen uusille käyttäjille ei kuluisi paljon aikaa, seuraavissa vaiheissa kopioimme valmiit skel-tiedostot isäntäjärjestelmästä siihen. Tämän avulla voit kaunistaa Bashia säilössä interaktiivisesti. Isäntäjärjestelmäni on Manjaro Linux ja tiedostot kopioidaan /etc/skel/.bash_profile
, /etc/skel/.bashrc
, /etc/skel/.dir_colors
periaatteessa ne sopivat Alpine Linuxille eivätkä aiheuta kriittisiä ongelmia, mutta sinulla voi olla eri jakelu ja sinun on selvitettävä itsenäisesti, onko Bashia suoritettaessa säiliössä virhe.
Kopioi skel-tiedostot säiliöön. Avain --create-dirs
luo tarvittavat hakemistot, jos niitä ei ole:
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
Kopioi olemassa olevalle pääkäyttäjälle juuri säilöön kopioidut skel-tiedostot kotihakemistoon:
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 asentaa käyttäjille järjestelmäkuoren /bin/sh
, korvaamme sen root
käyttäjä Bashissa:
lxc exec jupyterlab -- usermod --shell=/bin/bash root
Että root
käyttäjä ei ollut salasanaton, hänen on asetettava salasana. Seuraava komento luo ja asettaa hänelle uuden satunnaisen salasanan, jonka näet konsolin näytöllä sen suorittamisen jälkeen:
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
Luodaan myös uusi järjestelmäkäyttäjä - jupyter
jota varten määritämme myöhemmin jupyter lab:
lxc exec jupyterlab -- useradd --create-home --shell=/bin/bash jupyter
Luodaan ja asetetaan sille salasana:
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
Seuraavaksi suoritamme kaksi komentoa, joista ensimmäinen luo järjestelmäryhmän sudo
, ja toinen lisää siihen käyttäjän jupyter
:
lxc exec jupyterlab -- groupadd --system sudo
lxc exec jupyterlab -- groupmems --group sudo --add jupyter
Katsotaan mihin ryhmiin käyttäjä kuuluu jupyter
:
lxc exec jupyterlab -- id -Gn jupyter
jupyter sudo
Kaikki on hyvin, jatketaan.
Salli kaikki käyttäjät, jotka ovat ryhmän jäseniä sudo
käytä komentoa sudo
. Voit tehdä tämän suorittamalla seuraavan skriptin, jossa sed
poistaa parametririvin kommentit asetustiedostossa /etc/sudoers
:
lxc exec jupyterlab -- /bin/bash -c "sed --in-place -e '/^#[ t]*%sudo[ t]*ALL=(ALL)[ t]*ALL$/ s/^[# ]*//' /etc/sudoers"
JupyterLabin asennus ja konfigurointi ^
jupyter lab on Python-sovellus, joten meidän on ensin asennettava tämä tulkki. Myös, jupyter lab asennamme Python-pakettienhallinnan avulla pip
, eikä järjestelmä, koska se voi olla vanhentunut järjestelmäarkistossa ja siksi meidän on ratkaistava sen riippuvuudet manuaalisesti asentamalla seuraavat paketit - python3 python3-dev gcc libc-dev zeromq-dev
:
lxc exec jupyterlab -- apk add python3 python3-dev gcc libc-dev zeromq-dev
Päivitetään python-moduulit ja paketinhallinta pip
nykyiseen versioon:
lxc exec jupyterlab -- python3 -m pip install --upgrade pip setuptools wheel
Asettaa jupyter lab paketinhallinnan kautta pip
:
lxc exec jupyterlab -- python3 -m pip install jupyterlab
Laajennuksista lähtien jupyter lab ovat kokeellisia eikä niitä toimiteta virallisesti jupyterlab-paketin mukana, joten meidän on asennettava ja määritettävä se manuaalisesti.
Asennamme NodeJS ja sen paketinhallinta - NPM, koska jupyter lab käyttää niitä laajennuksiinsa:
lxc exec jupyterlab -- apk add nodejs npm
Laajennuksiin for jupyter lab jotka asennamme toimivat, ne on asennettava käyttäjähakemistoon, koska sovellus käynnistetään käyttäjältä jupyter
. Ongelmana on, että käynnistyskomennossa ei ole parametria, joka voidaan välittää hakemistoon, sovellus hyväksyy vain ympäristömuuttujan ja siksi meidän on määritettävä se. Tätä varten kirjoitamme muuttujan vientikomennon JUPYTERLAB_DIR
käyttäjän ympäristössä jupyter
, arkistoida .bashrc
joka suoritetaan aina, kun käyttäjä kirjautuu sisään:
lxc exec jupyterlab -- su -l jupyter -c "echo -e "nexport JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab" >> .bashrc"
Seuraava komento asentaa erityisen laajennuksen - laajennushallinta 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"
Nyt kaikki on valmis ensimmäistä käynnistystä varten jupyter lab, mutta voimme silti asentaa muutamia hyödyllisiä laajennuksia:
toc
— Sisällysluettelo luo artikkelin/muistivihkon otsikoiden luettelonjupyterlab-horizon-theme
- Käyttöliittymän teemajupyterlab_neon_theme
- Käyttöliittymän teemajupyterlab-ubu-theme
- Toinen teema tekijältä Tämä artikkeli :) Mutta tässä tapauksessa asennus GitHub-arkistosta näytetään
Joten suorita seuraavat komennot peräkkäin asentaaksesi nämä laajennukset:
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"
Laajennusten asentamisen jälkeen meidän on koottava ne, koska aiemmin asennuksen aikana määritimme avaimen --no-build
ajan säästämiseksi. Nyt nopeuttamme huomattavasti kokoamalla ne yhteen yhdellä kertaa:
lxc exec jupyterlab -- su -l jupyter -c "export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab; jupyter lab build"
Suorita nyt seuraavat kaksi komentoa suorittaaksesi ensimmäisen kerran jupyter lab. Se olisi mahdollista käynnistää yhdellä komennolla, mutta tässä tapauksessa mielessäsi vaikeasti muistettava käynnistyskomennon muistaa bash säilössä, ei isännässä, jossa komentoja on jo tarpeeksi tallentaa ne historiaan :)
Kirjaudu säilöön käyttäjänä jupyter
:
lxc exec jupyterlab -- su -l jupyter
Seuraavaksi juokse jupyter lab näppäimillä ja parametreilla osoitetulla tavalla:
[jupyter@jupyterlab ~]$ jupyter lab --ip=0.0.0.0 --no-browser
Siirry verkkoselaimesi osoitteeseen http://10.0.5.5:8888 ja avautuvalle sivulle Enter symbolinen pääsy, jonka näet konsolissa. Kopioi ja liitä se sivulle ja napsauta sitten Kirjaudu. Kun olet kirjautunut sisään, siirry vasemmalla olevaan laajennusvalikkoon alla olevan kuvan mukaisesti, jossa sinua pyydetään ottamaan laajennushallintaa aktivoinnin yhteydessä turvallisuusriskejä asentamalla laajennuksia kolmansilta osapuolilta, joille komento JupyterLab-kehitys ei ole vastuussa:
Olemme kuitenkin eristäneet koko jupyter lab ja aseta se säilöön, jotta NodeJS:ää vaativat ja käyttävät kolmannen osapuolen laajennukset eivät voi ainakaan varastaa levyllä olevia muita tietoja kuin niitä, jotka avaamme säilössä. Pääset yksityisiin asiakirjoihin isännässä /home
säilön prosessit eivät todennäköisesti onnistu, ja jos onnistuvat, sinulla on oltava oikeudet isäntäjärjestelmän tiedostoihin, koska käytämme säilöä etuoikeutettu tila. Näiden tietojen perusteella voit arvioida laajennusten sisällyttämisen riskiä jupyter lab.
Luotu IPython-muistikirjoja (sivua sisään jupyter lab) luodaan nyt käyttäjän kotihakemistoon - /home/jupyter
, mutta suunnitelmamme on jakaa tiedot (jako) isännän ja säilön välillä, joten palaa konsoliin ja lopeta jupyter lab suorittamalla pikanäppäin - CTRL+C
ja vastaamalla y
pyynnöstä. Lopeta sitten käyttäjän interaktiivinen istunto jupyter
pikanäppäimen täyttäminen CTRL+D
.
Tietojen jakaminen isännän kanssa ^
Jos haluat jakaa tietoja isäntäkoneen kanssa, sinun on luotava säilöön laite, jonka avulla voit tehdä tämän ja suorittaaksesi tämän suorittamalla seuraavan komennon, jossa määritämme seuraavat avaimet:
lxc config device add
— Komento lisää laitekokoonpanonjupyter
— Säilön tunnus, johon kokoonpano lisätäänhostfs
— Laitteen tunnus. Voit asettaa minkä tahansa nimen.disk
— Laitteen tyyppi ilmoitetaanpath
— Määrittää polun säiliössä, johon LXD liittää tämän laitteensource
— Määritä lähde, polku koneen hakemistoon, jonka haluat jakaa säilön kanssa. Määritä polku mieltymystesi mukaan
lxc config device add jupyterlab hostfs disk path=/mnt/hostfs source=/home/dv/projects/ipython-notebooks
Katalogia varten /home/dv/projects/ipython-notebooks
käyttöoikeus on asetettava säilön käyttäjälle, jonka UID on tällä hetkellä yhtä suuri kuin SubUID + UID
, katso luku Turvallisuus. Säilön oikeudet artikkelissa LXD - Linux-konttijärjestelmien perusominaisuudet.
Aseta käyttöoikeus isännälle, jossa omistaja on säilön käyttäjä jupyter
, ja muuttuja $USER
määrittää isäntäkäyttäjäsi ryhmäksi:
sudo chown 1001000:$USER /home/dv/projects/ipython-notebooks
Hei maailma! ^
Jos sinulla on edelleen konsoliistunto avoinna säilössä, jossa on jupyter labja käynnistä se sitten uudelleen uudella avaimella --notebook-dir
asettamalla arvon /mnt/hostfs
polkuna edellisessä vaiheessa luomamme laitteen säilössä olevien kannettavien tietokoneiden juureen:
jupyter lab --ip=0.0.0.0 --no-browser --notebook-dir=/mnt/hostfs
Siirry sitten sivulle http://10.0.5.5:8888 ja luo ensimmäinen kannettava tietokone napsauttamalla sivulla olevaa painiketta alla olevan kuvan mukaisesti:
Kirjoita sitten sivun kenttään Python-koodi, joka näyttää klassisen Hello World!
. Kun olet syöttänyt, paina CTRL+ENTER
tai yläreunan työkalupalkin "play"-painiketta, jotta JupyterLab tekee tämän:
Tässä vaiheessa melkein kaikki on käyttövalmiina, mutta ei ole kiinnostavaa, jos emme asenna ylimääräisiä Python-moduuleja (täysarvoisia sovelluksia), jotka voivat merkittävästi laajentaa Pythonin vakioominaisuuksia jupyter labjoten jatketaan :)
PS Mielenkiintoinen asia on, että vanha toteutus jupyter koodinimen alla Jupyter Notebook ei ole kadonnut ja se on olemassa rinnakkain jupyter lab. Voit vaihtaa vanhaan versioon seuraamalla linkkiä ja lisäämällä pääte osoitteeseen/tree
, ja siirtyminen uuteen versioon suoritetaan päätteellä /lab
, mutta sitä ei tarvitse määrittää:
- Jupyter muistikirja - http://10.0.5.5:8888/tree
- Jupyter Lab - http://10.0.5.5:8888/lab
Pythonin ominaisuuksien laajentaminen ^
Tässä osiossa asennamme sellaisia tehokkaita Python-kielimoduuleja kuin nuhjuinen, Panda, Matplotlib, IPyWidgetit jonka tulokset integroidaan kannettaviin tietokoneisiin jupyter lab.
Ennen kuin asennat luetellut Python-moduulit paketinhallinnan kautta pip
meidän on ensin ratkaistava järjestelmäriippuvuudet Alpine Linuxissa:
g++
— Tarvitaan moduulien kääntämiseen, koska osa niistä on toteutettu kielellä C + + ja muodostaa yhteyden Pythoniin ajon aikana binäärimoduuleinafreetype-dev
- riippuvuus Python-moduulista Matplotlib
Riippuvuuksien asennus:
lxc exec jupyterlab -- apk add g++ freetype-dev
On yksi ongelma: Alpine Linux -jakelun nykyisessä tilassa ei ole mahdollista kääntää NumPyn uutta versiota; näkyviin tulee käännösvirhe, jota en pystynyt ratkaisemaan:
VIRHE: Numpylle ei voitu rakentaa pyöriä, jotka käyttävät PEP 517:ää ja joita ei voida asentaa suoraan
Siksi asennamme tämän moduulin järjestelmäpaketina, joka jakelee jo käännettyä versiota, mutta hieman vanhempia kuin mitä sivustolla tällä hetkellä on saatavilla:
lxc exec jupyterlab -- apk add py3-numpy py3-numpy-dev
Asenna seuraavaksi Python-moduulit paketinhallinnan kautta pip
. Ole kärsivällinen, sillä jotkin moduulit käännetään ja saattaa kestää muutaman minuutin. Koneellani kokoaminen kesti ~15 minuuttia:
lxc exec jupyterlab -- python3 -m pip install pandas ipywidgets matplotlib
Asennusvälimuistin tyhjennys:
lxc exec jupyterlab -- rm -rf /home/*/.cache/pip/*
lxc exec jupyterlab -- rm -rf /root/.cache/pip/*
Moduulien testaus JupyterLabissa ^
Jos olet juoksemassa jupyter lab, käynnistä se uudelleen, jotta juuri asennetut moduulit aktivoituvat. Voit tehdä tämän napsauttamalla konsoliistunnossa CTRL+C
missä se on käynnissä ja mene sisään y
lopettaaksesi pyynnön ja aloittaaksesi sitten uudelleen jupyter lab painamalla näppäimistön ylänuolta, jotta komentoa ei anneta uudelleen ja sitten Enter
aloittaaksesi sen:
jupyter lab --ip=0.0.0.0 --no-browser --notebook-dir=/mnt/hostfs
Siirry sivulle http://10.0.5.5:8888/lab tai päivitä sivu selaimessasi ja kirjoita sitten seuraava koodi uuteen muistikirjan soluun:
%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
Sinun pitäisi saada alla olevan kuvan mukainen tulos, missä IPyWidgetit luo sivulle käyttöliittymäelementin, joka on vuorovaikutuksessa lähdekoodin kanssa, ja myös Matplotlib näyttää koodin tuloksen kuvan muodossa funktiokaaviona:
Useita esimerkkejä IPyWidgetit löydät sen opetusohjelmista täällä
Mitä muuta? ^
Hienoa, jos pysyt ja saavutit artikkelin loppuun. En tarkoituksella lähettänyt artikkelin loppuun valmiita skriptiä, joka asentaisi jupyter lab "yhdellä napsautuksella" kannustaa työntekijöitä :) Mutta voit tehdä sen itse, koska tiedät jo kuinka, kun olet kerännyt komennot yhdeksi Bash-skriptiksi :)
Voit myös:
- Aseta säilölle verkon nimi IP-osoitteen sijaan kirjoittamalla se yksinkertaisella tavalla
/etc/hosts
ja kirjoita osoite selaimeen http://jupyter.local:8888 - Kokeile säilön resurssirajoitusta, lue tätä varten oleva luku LXD-perusominaisuudet tai hanki lisätietoja LXD-kehittäjäsivustolta.
- Vaihda teemaa:
Ja paljon muuta voit tehdä! Siinä kaikki. Toivon sinulle menestystä!
PÄIVITYS: 15.04.2020 18:30 - Korjattu virheet luvussa "Hei, maailma!"
PÄIVITYS: 16.04.2020 10:00 — Korjattu ja lisätty teksti laajennushallinnan aktivointikuvauksessa jupyter lab
PÄIVITYS: 16.04.2020 10:40 — Tekstistä löytyneet korjatut virheet ja hieman parempaan muutettu luku "Perusohjelmiston asennus ja järjestelmän asennus"
Lähde: will.com