Èske w te janm oblije fè eksperyans ak kòd oswa sèvis piblik sistèm nan Linux pou yo pa enkyete w sou sistèm debaz la epi yo pa dechire tout bagay an ka ta gen yon erè nan kòd la ki ta dwe kouri ak privilèj rasin?
Men, sa ki sou lefèt ke an n di ou bezwen teste oswa kouri yon gwoup antye nan divès kalite mikwosèvis sou yon sèl machin? Yon santèn oswa menm yon mil?
Avèk machin vityèl jere pa yon hypervisor, pwoblèm sa yo ka epi yo pral rezoud, men a ki pri? Pou egzanp, yon veso nan LXD ki baze sou distribisyon an Alpine Linux konsome sèlman 7.60MB
RAM, ak kote patisyon rasin lan okipe apre demaraj 9.5MB
! Ki jan ou renmen sa, Elon Musk? Mwen rekòmande tcheke deyò kapasite debaz nan LXD - yon sistèm veso nan Linux
Apre li te vin klè an jeneral ki sa ki resipyan LXD yo ye, ann ale pi lwen epi reflechi, e si ta gen yon platfòm harvester konsa kote ou ta ka san danje kouri kòd pou lame a, jenere graf, dinamik (entèaktif) konekte UI- widgets ak kòd ou a, konplete kòd la ak tèks ak blakjak... fòma? Kèk sòt de blog entèaktif? Wow... mwen vle li! Vle! 🙂
Gade anba chat kote nou pral lanse nan yon veso jupyter lab - pwochen jenerasyon an nan koòdone itilizatè olye pou yo demode Jupyter Kaye, epi nou pral tou enstale modil Python tankou numpy, Panda, matplotlib, IPyWidgets ki pral pèmèt ou fè tout sa ki nan lis pi wo a epi sove li tout nan yon dosye espesyal - yon laptop IPython.
Navigasyon
- Plan dekolaj òbital
- Enstalasyon ak konfigirasyon sistèm debaz la
- Enstale lojisyèl debaz ak mete kanpe sistèm lan
- Enstale ak konfigirasyon JupyterLab
- Pataje done ak lame a
- Bonjou, Mondyal!
- Ogmante kapasite Python
- Tès modil nan JupyterLab
- Kisa ankò?
Plan dekolaj òbital ^
Ann dekri yon plan aksyon kout pou rann li pi fasil pou nou aplike konplo ki pi wo a:
- Ann enstale ak lanse yon veso ki baze sou twous distribisyon an Alpine Linux. Nou pral sèvi ak distribisyon sa a paske li se ki vize a minimalist epi yo pral enstale sèlman lojisyèl ki pi nesesè nan li, pa gen anyen initil.
- Ann ajoute yon disk vityèl adisyonèl nan veso a epi bay li yon non -
hostfs
epi monte li sou sistèm fichye rasin lan. Disk sa a pral fè li posib yo sèvi ak dosye sou lame a ki soti nan yon anyè bay andedan veso a. Kidonk, done nou yo pral endepandan de veso a. Si yo efase veso a, done yo ap rete sou lame a. Epitou, konplo sa a itil pou pataje menm done yo ant anpil kontenè san yo pa itilize mekanis rezo estanda distribisyon veso a. - Ann enstale Bash, sudo, bibliyotèk ki nesesè yo, ajoute ak konfigirasyon yon itilizatè sistèm
- Ann enstale Python, modil ak konpile depandans binè pou yo
- Ann enstale ak lanse jupyter lab, Customize aparans la, enstale ekstansyon pou li.
Nan atik sa a nou pral kòmanse ak lanse veso a, nou pa pral konsidere enstale ak konfigirasyon LXD, ou ka jwenn tout bagay sa a nan yon lòt atik - Karakteristik debaz nan LXD - Linux sistèm veso yo.
Enstalasyon ak konfigirasyon sistèm debaz la ^
Nou kreye yon veso ak lòd la nan ki nou presize imaj la - alpine3
, idantifyan pou veso a - jupyterlab
epi, si sa nesesè, pwofil konfigirasyon:
lxc init alpine3 jupyterlab --profile=default --profile=hddroot
Isit la mwen ap itilize yon pwofil konfigirasyon hddroot
ki presize pou kreye yon veso ak yon patisyon rasin nan Depo pisin ki sitiye sou yon disk HDD fizik:
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
Sa a ban m 'opòtinite pou fè eksperyans ak resipyan ki sou disk HDD a, ekonomize resous yo nan disk SSD, ki disponib tou nan sistèm mwen an 🙂 pou ki mwen te kreye yon pwofil konfigirasyon separe. ssdroot
.
Apre veso a fin kreye, li nan eta a STOPPED
, kidonk nou bezwen kòmanse li nan kouri sistèm init la nan li:
lxc start jupyterlab
Ann montre yon lis resipyan nan LXD lè l sèvi avèk kle a -c
ki endike kiyès ckolòn ekspozisyon:
lxc list -c ns4b
+------------+---------+-------------------+--------------+
| NAME | STATE | IPV4 | STORAGE POOL |
+------------+---------+-------------------+--------------+
| jupyterlab | RUNNING | 10.0.5.198 (eth0) | hddpool |
+------------+---------+-------------------+--------------+
Lè w kreye veso a, yo te chwazi adrès IP la owaza, paske nou te itilize yon pwofil konfigirasyon default
ki te deja configuré nan atik la Karakteristik debaz nan LXD - Linux sistèm veso yo.
Nou pral chanje adrès IP sa a nan yon lòt ki pi memorab lè nou kreye yon koòdone rezo nan nivo veso a, epi yo pa nan nivo pwofil konfigirasyon jan li ye kounye a nan konfigirasyon aktyèl la. Ou pa bezwen fè sa, ou ka sote li.
Kreye yon koòdone rezo eth0
ke nou konekte ak switch la (pon rezo) lxdbr0
nan ki nou pèmèt NAT dapre atik anvan an ak veso a pral kounye a gen aksè a entènèt la, epi nou menm tou nou bay yon adrès IP estatik nan koòdone a - 10.0.5.5
:
lxc config device add jupyterlab eth0 nic name=eth0 nictype=bridged parent=lxdbr0 ipv4.address=10.0.5.5
Apre ajoute yon aparèy, veso a dwe rekòmanse:
lxc restart jupyterlab
Tcheke estati veso a:
lxc list -c ns4b
+------------+---------+------------------+--------------+
| NAME | STATE | IPV4 | STORAGE POOL |
+------------+---------+------------------+--------------+
| jupyterlab | RUNNING | 10.0.5.5 (eth0) | hddpool |
+------------+---------+------------------+--------------+
Enstale lojisyèl debaz ak mete kanpe sistèm lan ^
Pou administre veso nou an, ou bezwen enstale lojisyèl sa a:
Pake
Deskripsyon
frape
Koki GNU Bourne Again la
bash-konplesyon
Fini pwogramasyon pou koki a bash
sudo
Bay sèten itilizatè yo kapasite pou yo kouri kèk kòmandman kòm rasin
lonbraj
Modpas ak zouti jesyon kont ak sipò pou dosye lonbraj ak PAM
tzdata
Sous pou zòn lè ak done lajounen
Nano
Pico editè script ak amelyorasyon
Anplis de sa, ou ka enstale sipò nan paj man sistèm yo lè w enstale pakè sa yo - man man-pages mdocml-apropos less
lxc exec jupyterlab -- apk add bash bash-completion sudo shadow tzdata nano
Ann gade kòmandman ak kle nou itilize yo:
lxc
— Rele kliyan LXDexec
- LXD metòd kliyan ki kouri yon lòd nan veso ajupyterlab
- ID veso--
- Yon kle espesyal ki presize pou pa entèprete plis kle kòm kle poulxc
epi pase rès fisèl la jan li ye nan veso aapk
- Manadjè pake distribisyon Alpine Linuxadd
— Yon metòd manadjè pake ki enstale pakè ki espesifye apre kòmandman an
Apre sa, nou pral mete yon zòn tan nan sistèm nan Europe/Moscow
:
lxc exec jupyterlab -- cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Apre enstale zòn tan an, pake a tzdata
pa nesesè ankò nan sistèm nan, li pral pran espas, kidonk ann efase li:
lxc exec jupyterlab -- apk del tzdata
Tcheke zòn tan an:
lxc exec jupyterlab -- date
Wed Apr 15 10:49:56 MSK 2020
Nan lòd pa pase anpil tan mete kanpe Bash pou nouvo itilizatè yo nan veso a, nan etap sa yo nou pral kopye dosye skel pare yo soti nan sistèm lame a nan li. Sa a pral pèmèt ou bèl Bash nan yon veso entèaktif. Sistèm lame mwen an se Manjaro Linux ak dosye yo ap kopye /etc/skel/.bash_profile
, /etc/skel/.bashrc
, /etc/skel/.dir_colors
an prensip yo apwopriye pou Alpine Linux epi yo pa lakòz pwoblèm kritik, men ou ka gen yon distribisyon diferan epi ou bezwen poukont yo konnen si gen yon erè lè w ap kouri Bash nan veso a.
Kopi dosye skel yo nan veso a. Kle --create-dirs
pral kreye repèrtwar ki nesesè yo si yo pa egziste:
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
Pou yon itilizatè rasin ki egziste deja, kopye dosye skel yo jis kopye nan veso a nan anyè lakay la:
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 enstale yon kokiy sistèm pou itilizatè yo /bin/sh
, nou pral ranplase li ak root
itilizatè nan Bash:
lxc exec jupyterlab -- usermod --shell=/bin/bash root
Sa root
itilizatè a pa t 'modpas, li bezwen mete yon modpas. Kòmandman sa a pral jenere epi mete yon nouvo modpas o aza pou li, ke ou pral wè sou ekran konsole a apre ekzekisyon li:
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
Epitou, ann kreye yon nouvo itilizatè sistèm - jupyter
pou ki nou pral konfigirasyon pita jupyter lab:
lxc exec jupyterlab -- useradd --create-home --shell=/bin/bash jupyter
Ann jenere epi mete yon modpas pou li:
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
Apre sa, nou pral egzekite de kòmandman, premye a pral kreye yon gwoup sistèm sudo
, ak dezyèm lan pral ajoute yon itilizatè nan li jupyter
:
lxc exec jupyterlab -- groupadd --system sudo
lxc exec jupyterlab -- groupmems --group sudo --add jupyter
Ann wè ki gwoup itilizatè a fè pati jupyter
:
lxc exec jupyterlab -- id -Gn jupyter
jupyter sudo
Tout bagay ok, ann kontinye.
Pèmèt tout itilizatè ki se manm gwoup la sudo
sèvi ak lòd sudo
. Pou fè sa, kouri script sa a, kote sed
retire liy paramèt la nan dosye konfigirasyon an /etc/sudoers
:
lxc exec jupyterlab -- /bin/bash -c "sed --in-place -e '/^#[ t]*%sudo[ t]*ALL=(ALL)[ t]*ALL$/ s/^[# ]*//' /etc/sudoers"
Enstale ak konfigirasyon JupyterLab ^
jupyter lab se yon aplikasyon Python, kidonk nou dwe premye enstale entèprèt sa a. Epitou, jupyter lab nou pral enstale lè l sèvi avèk manadjè a pake Python pip
, epi li pa youn nan sistèm, paske li ka demode nan repozitwa sistèm lan e se poutèt sa, nou dwe manyèlman rezoud depandans yo pou li pa enstale pakè sa yo - python3 python3-dev gcc libc-dev zeromq-dev
:
lxc exec jupyterlab -- apk add python3 python3-dev gcc libc-dev zeromq-dev
Ann mete ajou modil python ak manadjè pake pip
nan vèsyon aktyèl la:
lxc exec jupyterlab -- python3 -m pip install --upgrade pip setuptools wheel
Enstale jupyter lab atravè manadjè pake pip
:
lxc exec jupyterlab -- python3 -m pip install jupyterlab
Depi ekstansyon yo nan jupyter lab yo eksperimantal epi yo pa ofisyèlman anbake ak pake a jupyterlab, kidonk nou dwe enstale ak konfigirasyon li manyèlman.
Ann enstale NodeJS ak manadjè pake pou li - NPM, depi jupyter lab sèvi ak yo pou ekstansyon li yo:
lxc exec jupyterlab -- apk add nodejs npm
Pou ekstansyon pou jupyter lab ki nou pral enstale te travay, yo bezwen enstale nan anyè itilizatè a depi aplikasyon an ap lanse soti nan itilizatè a jupyter
. Pwoblèm lan se ke pa gen okenn paramèt nan lòd lansman an ki ka pase nan yon anyè; aplikasyon an sèlman aksepte yon varyab anviwònman ak Se poutèt sa nou dwe defini li. Pou fè sa, nou pral ekri lòd ekspòtasyon varyab la JUPYTERLAB_DIR
nan anviwònman itilizatè a jupyter
, ranpli .bashrc
ki egzekite chak fwa itilizatè a konekte:
lxc exec jupyterlab -- su -l jupyter -c "echo -e "nexport JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab" >> .bashrc"
Pwochen lòd la pral enstale yon ekstansyon espesyal - manadjè ekstansyon nan 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"
Koulye a, tout bagay pare pou premye lansman an jupyter lab, men nou ka toujou enstale kèk ekstansyon itil:
toc
— Table of Contents, jenere yon lis tit nan yon atik / kayejupyterlab-horizon-theme
- Tèm UIjupyterlab_neon_theme
- Tèm UIjupyterlab-ubu-theme
- Yon lòt ankò tèm nan men otè a atik sa a :) Men, nan ka sa a, yo pral montre enstalasyon ki soti nan depo GitHub la
Se konsa, kouri kòmandman sa yo sekans pou enstale ekstansyon sa yo:
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"
Apre enstale ekstansyon yo, nou dwe konpile yo, depi deja, pandan enstalasyon, nou espesifye kle a --no-build
pou ekonomize tan. Koulye a, nou pral akselere anpil nan konpile yo ansanm nan yon sèl kou:
lxc exec jupyterlab -- su -l jupyter -c "export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab; jupyter lab build"
Koulye a, kouri de kòmandman sa yo pou kouri li pou premye fwa jupyter lab. Li ta posib pou lanse li ak yon sèl kòmand, men nan ka sa a, lòd lanse a, ki difisil pou sonje nan tèt ou, yo pral vin chonje pa bash nan veso a, epi yo pa sou lame a, kote gen deja ase kòmandman. pou anrejistre yo nan listwa :)
Konekte nan veso a kòm yon itilizatè jupyter
:
lxc exec jupyterlab -- su -l jupyter
Apre sa, kouri jupyter lab ak kle ak paramèt jan sa endike:
[jupyter@jupyterlab ~]$ jupyter lab --ip=0.0.0.0 --no-browser
Ale nan adrès la nan navigatè entènèt ou a http://10.0.5.5:8888 epi sou paj ki ouvri antre siy aksè ki ou pral wè nan konsole a. Kopi epi kole li sou paj la, epi klike sou Ouvri sesyon an. Apre ou fin konekte, ale nan meni ekstansyon ki sou bò gòch la, jan yo montre nan figi ki anba a, kote w ap mande w, lè w ap aktive manadjè ekstansyon an, pou w pran risk sekirite lè w enstale ekstansyon ki soti nan twazyèm pati pou ki lòd la. Devlopman JupyterLab pa responsab:
Sepandan, nou izole tout la jupyter lab epi mete l nan yon veso pou ekstansyon twazyèm pati ki mande epi sèvi ak NodeJS pa ka omwen vòlè done sou disk la lòt pase sa nou louvri andedan veso a. Ale nan dokiman prive ou sou lame a nan /home
pwosesis ki soti nan veso a gen anpil chans pou yo reyisi, epi si yo fè sa, Lè sa a, ou bezwen gen privilèj sou dosye sou sistèm lame a, depi nou kouri veso a nan. mòd san privilèj. Dapre enfòmasyon sa a, ou ka evalye risk pou enkli ekstansyon nan jupyter lab.
Kreye kaye IPython (paj nan jupyter lab) yo pral kreye kounye a nan anyè lakay itilizatè a - /home/jupyter
, men plan nou yo se divize done yo (pataje) ant lame a ak veso a, kidonk retounen nan konsole a epi sispann jupyter lab pa egzekite hotkey - CTRL+C
epi reponn y
sou demann. Lè sa a, mete fen nan sesyon entèaktif itilizatè a jupyter
ranpli yon hotkey CTRL+D
.
Pataje done ak lame a ^
Pou pataje done ak lame a, ou bezwen kreye yon aparèy nan veso a ki pèmèt ou fè sa epi pou fè sa, kouri lòd sa a kote nou presize kle sa yo:
lxc config device add
— Kòmandman an ajoute konfigirasyon aparèy lajupyter
— Didantite veso ki ajoute konfigirasyon anhostfs
- ID aparèy. Ou ka mete nenpòt non.disk
— Yo endike kalite aparèy lapath
— Espesifye chemen an nan veso a kote LXD pral monte aparèy sa asource
— Espesifye sous la, chemen an nan anyè sou lame a ke ou vle pataje ak veso a. Espesifye chemen an selon preferans ou yo
lxc config device add jupyterlab hostfs disk path=/mnt/hostfs source=/home/dv/projects/ipython-notebooks
Pou katalòg la /home/dv/projects/ipython-notebooks
yo dwe mete pèmisyon pou itilizatè veso ki kounye a gen yon UID egal a SubUID + UID
, gade chapit Sekirite. Privilèj Veso nan atik Karakteristik debaz nan LXD - Linux sistèm veso yo.
Mete pèmisyon an sou lame a, kote pwopriyetè a pral itilizatè a veso jupyter
, ak varyab la $USER
pral presize itilizatè lame ou a kòm yon gwoup:
sudo chown 1001000:$USER /home/dv/projects/ipython-notebooks
Bonjou, Mondyal! ^
Si ou toujou gen yon sesyon konsole louvri nan veso a ak jupyter lab, Lè sa a, rekòmanse li ak yon nouvo kle --notebook-dir
pa mete valè a /mnt/hostfs
kòm chemen an nan rasin nan laptops yo nan veso a pou aparèy la ke nou te kreye nan etap anvan an:
jupyter lab --ip=0.0.0.0 --no-browser --notebook-dir=/mnt/hostfs
Lè sa a, ale nan paj la http://10.0.5.5:8888 epi kreye premye laptop ou a lè w klike sou bouton an sou paj la jan yo montre nan foto ki anba a:
Lè sa a, nan jaden an sou paj la, antre kòd la Python ki pral montre klasik la Hello World!
. Lè w fin antre, peze CTRL+ENTER
oswa bouton "jwe" ki sou ba zouti ki anlè a pou JupyterLab fè sa:
Nan pwen sa a, prèske tout bagay pare pou itilize, men li pral san enterè si nou pa enstale modil Python adisyonèl (aplikasyon plen véritable) ki ka elaji siyifikativman kapasite estanda Python nan. jupyter labSe poutèt sa, ann kontinye :)
PS Bagay la enteresan an se ke aplikasyon an fin vye granmoun jupyter anba non kòd Kaye Jupyter pa ale epi li egziste an paralèl ak jupyter lab. Pou chanje nan ansyen vèsyon an, swiv lyen an ajoute sifiks la nan adrès la/tree
, ak tranzisyon an nan nouvo vèsyon an te pote soti ak sifiks la /lab
, men li pa oblije espesifye:
- Kaye Jupyter - http://10.0.5.5:8888/tree
- Jupyter Lab - http://10.0.5.5:8888/lab
Ogmante kapasite Python ^
Nan seksyon sa a, nou pral enstale modil Python pwisan tankou numpy, Panda, matplotlib, IPyWidgets rezilta yo ki entegre nan laptops jupyter lab.
Anvan enstale modil Python ki nan lis yo atravè manadjè pake a pip
nou dwe premye rezoud depandans sistèm nan Alpine Linux:
g++
— Li nesesè pou konpile modil, paske kèk ladan yo aplike nan lang lan C ++ epi konekte ak Python nan ègzekutabl kòm modil binèfreetype-dev
- depandans pou modil Python matplotlib
Enstale depandans:
lxc exec jupyterlab -- apk add g++ freetype-dev
Gen yon pwoblèm: nan eta aktyèl distribisyon an Alpine Linux, li pa pral posib yo konpile nouvo vèsyon an nan NumPy; yon erè konpilasyon ap parèt ke mwen pa t 'kapab rezoud:
eRÈ: Pa t 'kapab bati wou pou numpy ki sèvi ak PEP 517 epi yo pa ka enstale dirèkteman
Se poutèt sa, nou pral enstale modil sa a kòm yon pake sistèm ki distribye yon vèsyon ki deja konpile, men yon ti kras pi gran pase sa ki disponib kounye a sou sit la:
lxc exec jupyterlab -- apk add py3-numpy py3-numpy-dev
Apre sa, enstale modil Python atravè manadjè pake a pip
. Tanpri pran pasyans paske kèk modil pral konpile epi yo ka pran kèk minit. Sou machin mwen an, konpilasyon te pran ~ 15 minit:
lxc exec jupyterlab -- python3 -m pip install pandas ipywidgets matplotlib
Netwaye kachèt enstalasyon yo:
lxc exec jupyterlab -- rm -rf /home/*/.cache/pip/*
lxc exec jupyterlab -- rm -rf /root/.cache/pip/*
Tès modil nan JupyterLab ^
Si w ap kouri jupyter lab, rekòmanse li pou modil ki fèk enstale yo aktive. Pou fè sa, nan yon sesyon konsole, klike sou CTRL+C
kote ou genyen li kouri epi antre y
pou sispann demann epi rekòmanse ankò jupyter lab pa peze flèch la moute sou klavye a pou yo pa antre nan lòd la ankò ak Lè sa a Enter
pou kòmanse li:
jupyter lab --ip=0.0.0.0 --no-browser --notebook-dir=/mnt/hostfs
Ale nan paj la http://10.0.5.5:8888/lab oswa rafrechi paj la nan navigatè w la, epi antre kòd sa a nan yon nouvo selil kaye:
%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
Ou ta dwe jwenn yon rezilta tankou nan foto ki anba a, ki kote IPyWidgets jenere yon eleman UI sou paj la ki entèaktif ak kòd sous la, epi tou matplotlib montre rezilta kòd la nan fòm yon foto kòm yon graf fonksyon:
Anpil egzanp IPyWidgets ou ka jwenn li nan leson patikilye isit la
Kisa ankò? ^
Byen fè si ou te rete epi rive nan fen atik la. Mwen fè espre pa afiche yon script pare-fè nan fen atik la ki ta enstale jupyter lab nan "yon sèl klike sou" ankouraje travayè yo :) Men, ou ka fè li tèt ou, paske ou deja konnen ki jan, li te kolekte kòmandman yo nan yon sèl script Bash :)
Ou kapab tou:
- Mete yon non rezo pou veso a olye de yon adrès IP lè w ekri li nan yon senp
/etc/hosts
epi tape adrès la nan navigatè a http://jupyter.local:8888 - Jwe ak limit resous pou veso a, pou sa li chapit la nan kapasite debaz LXD oswa jwenn plis enfòmasyon sou sit pwomotè LXD la.
- Chanje tèm nan:
Ak plis ankò ou ka fè! Se tout. Mwen swete w siksè!
MIZAJOU: 15.04.2020/18/30 XNUMX:XNUMX - Korije erè nan chapit "Bonjou, Monn!"
MIZAJOU: 16.04.2020/10/00 XNUMX:XNUMX — Tèks korije epi ajoute nan deskripsyon deklanchman manadjè ekstansyon. jupyter lab
MIZAJOU: 16.04.2020/10/40 XNUMX:XNUMX — Korije erè yo te jwenn nan tèks la ak yon ti kras chanje pou pi bon chapit la "Enstale lojisyèl debaz ak mete kanpe sistèm nan"
Sous: www.habr.com