Koj puas tau sim nrog cov cai lossis cov khoom siv hluav taws xob hauv Linux kom tsis txhob txhawj xeeb txog lub hauv paus system thiab tsis rhuav tshem txhua yam nyob rau hauv rooj plaub ntawm qhov yuam kev hauv cov cai uas yuav tsum khiav nrog cov cai hauv paus?
Tab sis dab tsi txog qhov tseeb uas peb hais tias koj yuav tsum sim lossis khiav tag nrho pawg ntawm ntau yam microservices ntawm ib lub tshuab? Ib puas lossis txawm ib txhiab?
Nrog cov tshuab virtual tswj hwm los ntawm tus neeg saib xyuas, cov teeb meem zoo li no tuaj yeem daws tau, tab sis tus nqi dab tsi? Piv txwv li, lub thawv hauv LXD raws li Alpine Linux faib tsuas yog siv xwb 7.60MB
RAM, thiab qhov twg hauv paus muab faib occupies tom qab pib 9.5MB
! Koj nyiam li cas, Elon Musk? Kuv pom zoo kom mus xyuas Cov peev txheej yooj yim ntawm LXD - lub thawv ntim hauv Linux
Tom qab nws paub meej tias LXD ntim khoom yog dab tsi, cia peb mus ntxiv thiab xav tias yuav ua li cas yog tias muaj xws li lub tshuab sau qoob loo uas koj tuaj yeem ua haujlwm ruaj ntseg rau tus tswv tsev, tsim cov duab kos, dynamically (interactively) txuas UI- widgets nrog koj cov cai, ntxiv cov cai nrog cov ntawv nrog blackjack... formatting? Qee hom kev sib tham sib blog? Wow... Kuv xav tau! Xav! π
Saib hauv qab tus miv uas peb yuav tso rau hauv lub thawv jupyter lab - tiam tom ntej ntawm cov neeg siv interface hloov ntawm Jupyter Notebook outdated, thiab peb tseem yuav nruab Python modules xws li numpy, pandas, matplotlib, IPyWidgets uas yuav tso cai rau koj ua txhua yam uas tau teev tseg saum toj no thiab khaws nws tag nrho hauv cov ntaub ntawv tshwj xeeb - IPython laptop.
Kev Nkoj Tawm
- Orbital take-off plan
- Installation thiab configuration ntawm lub hauv paus system
- Txhim kho cov software yooj yim thiab teeb tsa lub system
- Txhim kho thiab teeb tsa JupyterLab
- Muab cov ntaub ntawv nrog tus tswv tsev
- Nyob zoo, Ntiaj Teb!
- Expanding lub peev xwm ntawm Python
- Kev sim modules hauv JupyterLab
- Dab tsi ntxiv?
Orbital take-off plan ^
Cia peb piav qhia txog cov phiaj xwm luv luv los ua kom yooj yim rau peb los siv cov txheej txheem saum toj no:
- Cia peb nruab thiab tso lub thawv raws li cov khoom siv faib khoom alpine linux. Peb yuav siv qhov kev faib tawm no vim nws yog tsom rau minimalism thiab yuav nruab tsuas yog cov software tsim nyog tshaj plaws rau hauv nws, tsis muaj dab tsi superfluous.
- Cia peb ntxiv ib qho ntxiv virtual disk hauv lub thawv thiab muab nws lub npe -
hostfs
thiab mount nws mus rau hauv paus ntaub ntawv system. Qhov no disk yuav ua rau nws muaj peev xwm siv cov ntaub ntawv ntawm tus tswv tsev los ntawm ib phau ntawv teev npe hauv lub thawv. Yog li, peb cov ntaub ntawv yuav muaj kev ywj pheej ntawm lub thawv. Yog tias lub thawv raug tshem tawm, cov ntaub ntawv yuav nyob twj ywm ntawm tus tswv tsev. Tsis tas li ntawd, cov tswv yim no muaj txiaj ntsig zoo rau kev sib qhia tib cov ntaub ntawv ntawm ntau lub ntim yam tsis siv cov txheej txheem network txheej txheem ntawm lub thawv xa khoom. - Cia peb nruab Bash, sudo, cov tsev qiv ntawv tsim nyog, ntxiv thiab teeb tsa tus neeg siv qhov system
- Cia peb nruab Python, modules thiab suav binary dependencies rau lawv
- Cia peb nruab thiab tso tawm jupyter lab, kho qhov tsos, nruab extensions rau nws.
Hauv tsab xov xwm no peb yuav pib nrog kev tso lub thawv, peb yuav tsis xav txog kev txhim kho thiab teeb tsa LXD, koj tuaj yeem pom tag nrho cov no hauv lwm tsab xov xwm - Cov yam ntxwv tseem ceeb ntawm LXD - Linux ntim tshuab.
Installation thiab configuration ntawm lub hauv paus system ^
Peb tsim ib lub thawv nrog cov lus txib uas peb qhia cov duab - alpine3
, identifier rau lub thawv - jupyterlab
thiab, yog tias tsim nyog, configuration profiles:
lxc init alpine3 jupyterlab --profile=default --profile=hddroot
Ntawm no kuv tab tom siv qhov profile configuration hddroot
uas qhia tau hais tias tsim ib lub thawv nrog lub hauv paus muab faib rau hauv Lub pas dej cia nyob rau ntawm lub cev HDD disk:
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
Qhov no muab sijhawm rau kuv los sim nrog cov ntim ntawm HDD disk, txuag cov peev txheej ntawm SSD disk, uas tseem muaj nyob hauv kuv lub cev π rau qhov kuv tau tsim ib qho profile cais. ssdroot
.
Tom qab lub thawv tsim, nws yog nyob rau hauv lub xeev STOPPED
, yog li peb yuav tsum pib nws los ntawm kev khiav lub init system hauv nws:
lxc start jupyterlab
Cia peb tso saib cov npe ntawm cov thawv hauv LXD siv tus yuam sij -c
uas qhia qhov twg columns zaub:
lxc list -c ns4b
+------------+---------+-------------------+--------------+
| NAME | STATE | IPV4 | STORAGE POOL |
+------------+---------+-------------------+--------------+
| jupyterlab | RUNNING | 10.0.5.198 (eth0) | hddpool |
+------------+---------+-------------------+--------------+
Thaum tsim lub thawv, tus IP chaw nyob raug xaiv randomly, txij li thaum peb siv qhov profile configuration default
uas yav tas los teeb tsa hauv kab lus Cov yam ntxwv tseem ceeb ntawm LXD - Linux ntim tshuab.
Peb yuav hloov qhov chaw nyob IP no mus rau qhov nco tau ntau dua los ntawm kev tsim lub network interface ntawm qib ntim, thiab tsis yog nyob rau theem kev teeb tsa profile raws li tam sim no nyob rau hauv kev teeb tsa tam sim no. Koj tsis tas yuav ua qhov no, koj tuaj yeem hla nws.
Tsim lub network interface eth0
uas peb txuas mus rau qhov hloov (network choj) lxdbr0
nyob rau hauv uas peb enabled NAT raws li tsab xov xwm dhau los thiab lub thawv yuav tam sim no muaj kev nkag tau mus rau hauv Internet, thiab peb kuj muab ib tug zoo li qub IP chaw nyob rau lub interface - 10.0.5.5
:
lxc config device add jupyterlab eth0 nic name=eth0 nictype=bridged parent=lxdbr0 ipv4.address=10.0.5.5
Tom qab ntxiv ib lub cuab yeej, lub thawv yuav tsum tau rebooted:
lxc restart jupyterlab
Tshawb xyuas qhov xwm txheej ntawm lub thawv:
lxc list -c ns4b
+------------+---------+------------------+--------------+
| NAME | STATE | IPV4 | STORAGE POOL |
+------------+---------+------------------+--------------+
| jupyterlab | RUNNING | 10.0.5.5 (eth0) | hddpool |
+------------+---------+------------------+--------------+
Txhim kho cov software yooj yim thiab teeb tsa lub system ^
Txhawm rau tswj hwm peb lub thawv, koj yuav tsum nruab cov software hauv qab no:
pob
Hauj lwm
bash
GNU Bourne Again plhaub
bash-ua tiav
Programmable tiav rau lub plhaub bash
sudo
Muab qee tus neeg siv lub peev xwm los khiav qee cov lus txib ua hauv paus
duab ntxoov ntxoo
Password thiab account tswj cuab yeej suite nrog kev txhawb nqa rau duab ntxoov ntxoo cov ntaub ntawv thiab PAM
tzdata
Cov peev txheej rau lub sijhawm thaj tsam thiab cov ntaub ntawv txuag lub sijhawm nruab hnub
nano
Pico editor clone nrog kev txhim kho
Tsis tas li ntawd, koj tuaj yeem nruab kev txhawb nqa hauv cov kab ke txiv neej-nplooj los ntawm kev txhim kho cov pob hauv qab no β man man-pages mdocml-apropos less
lxc exec jupyterlab -- apk add bash bash-completion sudo shadow tzdata nano
Cia peb saib cov lus txib thiab cov yuam sij peb siv:
lxc
- Hu rau LXD tus neeg siv khoomexec
- LXD tus neeg siv txoj kev uas khiav cov lus txib hauv lub thawvjupyterlab
- Ntim ID--
- Tus yuam sij tshwj xeeb uas qhia tsis tau txhais cov yuam sij ntxiv ua tus yuam sij raulxc
thiab dhau qhov seem ntawm txoj hlua raws li yog mus rau lub thawvapk
- Alpine Linux faib pob tus thawj tswjadd
- Ib txoj kev tswj hwm pob uas txhim kho cov pob khoom tau teev tseg tom qab cov lus txib
Tom ntej no, peb yuav teem ib lub sij hawm nyob rau hauv lub system Europe/Moscow
:
lxc exec jupyterlab -- cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Tom qab kev txhim kho lub sijhawm, lub pob tzdata
tsis xav tau nyob rau hauv lub kaw lus, nws yuav siv qhov chaw, yog li cia peb rho tawm nws:
lxc exec jupyterlab -- apk del tzdata
Tshawb xyuas thaj tsam lub sijhawm:
lxc exec jupyterlab -- date
Wed Apr 15 10:49:56 MSK 2020
Txhawm rau kom tsis txhob siv sijhawm ntau los teeb tsa Bash rau cov neeg siv tshiab hauv lub thawv, hauv cov kauj ruam hauv qab no peb yuav luam cov ntaub ntawv npaj ua tiav los ntawm tus tswv tsev rau nws. Qhov no yuav cia koj ua kom zoo nkauj Bash hauv lub thawv sib tham sib. Kuv tus tswv system yog Manjaro Linux thiab cov ntaub ntawv raug theej /etc/skel/.bash_profile
, /etc/skel/.bashrc
, /etc/skel/.dir_colors
nyob rau hauv lub hauv paus ntsiab lus lawv tsim nyog rau Alpine Linux thiab tsis ua teeb meem tseem ceeb, tab sis tej zaum koj yuav muaj ib tug sib txawv kev faib thiab koj yuav tsum tau ntawm nws tus kheej txiav txim seb puas muaj ib qho yuam kev thaum khiav Bash nyob rau hauv lub thawv.
Luam cov ntaub ntawv skel mus rau lub thawv. Ntsiab --create-dirs
yuav tsim cov npe tsim nyog yog tias lawv tsis muaj:
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
Rau ib tus neeg siv hauv paus uas twb muaj lawm, luam cov ntaub ntawv skel tsuas yog theej rau hauv lub thawv rau hauv cov npe hauv tsev:
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 nruab ib lub plhaub system rau cov neeg siv /bin/sh
, peb yuav hloov nws nrog root
tus neeg siv hauv Bash:
lxc exec jupyterlab -- usermod --shell=/bin/bash root
uas root
tus neeg siv tsis yog passwordless, nws yuav tsum tau teeb tsa tus password. Cov lus txib hauv qab no yuav tsim thiab teeb tsa tus password tshiab rau nws, uas koj yuav pom ntawm lub vijtsam console tom qab nws ua tiav:
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
Tsis tas li ntawd, cia peb tsim cov neeg siv system tshiab - jupyter
uas peb yuav configure tom qab jupyter lab:
lxc exec jupyterlab -- useradd --create-home --shell=/bin/bash jupyter
Cia peb tsim thiab teeb tus password rau nws:
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
Tom ntej no, peb yuav ua ob qho lus txib, thawj zaug yuav tsim ib pawg system sudo
, thiab qhov thib ob yuav ntxiv tus neeg siv rau nws jupyter
:
lxc exec jupyterlab -- groupadd --system sudo
lxc exec jupyterlab -- groupmems --group sudo --add jupyter
Cia peb saib seb pawg neeg siv yog dab tsi jupyter
:
lxc exec jupyterlab -- id -Gn jupyter
jupyter sudo
Txhua yam yog ok, cia peb mus.
Tso cai rau txhua tus neeg siv uas yog cov tswv cuab ntawm pab pawg sudo
siv lus txib sudo
. Ua li no, khiav cov ntawv hauv qab no, qhov twg sed
uncomments tus parameter kab nyob rau hauv cov ntaub ntawv configuration /etc/sudoers
:
lxc exec jupyterlab -- /bin/bash -c "sed --in-place -e '/^#[ t]*%sudo[ t]*ALL=(ALL)[ t]*ALL$/ s/^[# ]*//' /etc/sudoers"
Txhim kho thiab teeb tsa JupyterLab ^
jupyter lab yog ib daim ntawv thov Python, yog li peb yuav tsum xub nruab tus neeg txhais lus no. Tsis tas li ntawd, jupyter lab peb yuav nruab siv tus thawj tswj pob Python pip
, thiab tsis yog lub kaw lus ib qho, vim tias nws yuav dhau mus rau hauv qhov chaw cia khoom thiab yog li ntawd, peb yuav tsum daws qhov kev cia siab rau nws los ntawm kev txhim kho cov pob hauv qab no - python3 python3-dev gcc libc-dev zeromq-dev
:
lxc exec jupyterlab -- apk add python3 python3-dev gcc libc-dev zeromq-dev
Cia peb hloov kho python modules thiab tus thawj tswj pob pip
mus rau qhov tam sim no version:
lxc exec jupyterlab -- python3 -m pip install --upgrade pip setuptools wheel
Nruab jupyter lab ntawm tus thawj tswj pob pip
:
lxc exec jupyterlab -- python3 -m pip install jupyterlab
Raws li cov extensions nyob rau hauv jupyter lab yog kev sim thiab tsis raug xa nrog lub pob jupyterlab, yog li peb yuav tsum nruab thiab teeb tsa nws manually.
Cia peb nruab NodeJS thiab tus thawj tswj pob rau nws - NPM, txij li thaum jupyter lab siv lawv rau nws cov extensions:
lxc exec jupyterlab -- apk add nodejs npm
Rau extensions rau jupyter lab uas peb yuav nruab ua haujlwm, lawv yuav tsum tau muab tso rau hauv cov neeg siv phau ntawv vim tias daim ntawv thov yuav raug tso tawm los ntawm tus neeg siv jupyter
. Qhov teeb meem yog tias tsis muaj parameter nyob rau hauv lub launch command uas yuav kis tau mus rau ib tug directory; daim ntawv thov tsuas yog lees txais ib puag ncig kuj sib txawv thiab yog li ntawd peb yuav tsum tau txhais nws. Txhawm rau ua qhov no, peb yuav sau cov lus hais kom hloov pauv hloov pauv JUPYTERLAB_DIR
nyob rau hauv cov neeg siv ib puag ncig jupyter
, ua file .bashrc
uas yog ua tiav txhua zaus tus neeg siv nkag rau hauv:
lxc exec jupyterlab -- su -l jupyter -c "echo -e "nexport JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab" >> .bashrc"
Cov lus txib tom ntej no yuav nruab qhov tshwj xeeb txuas ntxiv - tus tswj hwm txuas ntxiv hauv 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"
Tam sim no txhua yam yog npaj rau thawj zaug tso tawm jupyter lab, tab sis peb tseem tuaj yeem nruab ob peb qhov tseem ceeb txuas ntxiv:
toc
- Cov Ntsiab Lus, tsim cov npe ntawm cov ncauj lus hauv ib tsab xov xwm / phau ntawvjupyterlab-horizon-theme
- UI ntsiabjupyterlab_neon_theme
- UI ntsiabjupyterlab-ubu-theme
- Lwm tus ntsiab lus los ntawm tus sau tsab xov xwm no :) Tab sis nyob rau hauv cov ntaub ntawv no, lub installation los ntawm GitHub repository yuav tshwm sim
Yog li, khiav cov lus txib hauv qab no ua ntu zus rau nruab cov txuas ntxiv no:
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"
Tom qab txhim kho cov extensions, peb yuav tsum muab tso ua ke, txij li yav tas los, thaum lub sij hawm installation, peb teev tus yuam sij --no-build
kom txuag tau sijhawm. Tam sim no peb yuav ua kom nrawm nrawm los ntawm kev sau lawv ua ke hauv ib qho mus:
lxc exec jupyterlab -- su -l jupyter -c "export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab; jupyter lab build"
Tam sim no khiav ob cov lus txib nram qab no kom khiav nws thawj zaug jupyter lab. Nws yuav muaj peev xwm tso nws nrog ib qho kev hais kom ua, tab sis qhov no, cov lus txib tso tawm, uas nyuaj rau nco ntsoov hauv koj lub siab, yuav nco ntsoov los ntawm bash hauv lub thawv, thiab tsis yog ntawm tus tswv tsev, qhov twg muaj cov lus txib txaus. sau lawv hauv keeb kwm :)
Nkag mus rau lub thawv raws li tus neeg siv jupyter
:
lxc exec jupyterlab -- su -l jupyter
Tom ntej no, khiav jupyter lab nrog cov yuam sij thiab cov parameter raws li qhia:
[jupyter@jupyterlab ~]$ jupyter lab --ip=0.0.0.0 --no-browser
Mus rau qhov chaw nyob hauv koj lub web browser http://10.0.5.5:8888 thiab ntawm nplooj ntawv uas qhib nkag token nkag mus uas koj yuav pom hauv console. Luam thiab muab tshuaj txhuam rau ntawm nplooj ntawv, ces nyem ID nkag mus. Tom qab nkag mus rau hauv, mus rau cov ntawv qhia zaub mov txuas ntxiv ntawm sab laug, raws li qhia hauv daim duab hauv qab no, qhov twg koj yuav tau txais kev tshoov siab, thaum qhib tus thawj tswj hwm txuas ntxiv, kom muaj kev nyab xeeb txaus ntshai los ntawm kev txhim kho txuas ntxiv los ntawm cov neeg thib peb uas cov lus txib JupyterLab kev txhim kho tsis muaj lub luag haujlwm:
Txawm li cas los xij, peb cais tag nrho jupyter lab thiab muab tso rau hauv ib lub thawv kom cov neeg thib peb txuas ntxiv uas xav tau thiab siv NodeJS yam tsawg kawg tsis tuaj yeem nyiag cov ntaub ntawv ntawm disk uas tsis yog cov uas peb qhib hauv lub thawv. Nkag mus rau koj cov ntaub ntawv ntiag tug ntawm tus tswv tsev hauv /home
cov txheej txheem los ntawm lub thawv tsis zoo li yuav ua tiav, thiab yog tias lawv ua, ces koj yuav tsum muaj cov cai ntawm cov ntaub ntawv ntawm tus tswv tsev, txij li thaum peb khiav lub thawv hauv hom tsis tsim nyog. Raws li cov ntaub ntawv no, koj tuaj yeem ntsuas qhov kev pheej hmoo ntawm suav nrog kev txuas ntxiv hauv jupyter lab.
Tsim IPython phau ntawv sau (nplooj hauv jupyter lab) tam sim no yuav raug tsim nyob rau hauv tus neeg siv lub tsev directory - /home/jupyter
, tab sis peb cov phiaj xwm yog faib cov ntaub ntawv (sib qhia) ntawm tus tswv tsev thiab lub thawv, yog li rov qab mus rau lub console thiab nres jupyter lab los ntawm executing hotkey - CTRL+C
thiab teb y
thaum thov. Tom qab ntawd xaus tus neeg siv qhov kev sib tham sib tham jupyter
ua kom tiav qhov hotkey CTRL+D
.
Muab cov ntaub ntawv nrog tus tswv tsev ^
Txhawm rau qhia cov ntaub ntawv nrog tus tswv tsev, koj yuav tsum tsim cov cuab yeej hauv lub thawv uas tso cai rau koj ua qhov no thiab ua qhov no, khiav cov lus txib hauv qab no uas peb qhia cov yuam sij hauv qab no:
lxc config device add
- Cov lus txib ntxiv cov cuab yeej teeb tsajupyter
- ID ntawm lub thawv uas ntxiv rau kev teeb tsahostfs
- Ntaus ID. Koj tuaj yeem tsim ib lub npe.disk
- Hom khoom siv tau qhiapath
- Qhia txog txoj hauv kev hauv lub thawv uas LXD yuav mount lub cuab yeej nosource
- Qhia qhov chaw, txoj hauv kev mus rau cov npe ntawm tus tswv tsev uas koj xav qhia nrog lub thawv. Qhia txoj hauv kev raws li koj nyiam
lxc config device add jupyterlab hostfs disk path=/mnt/hostfs source=/home/dv/projects/ipython-notebooks
Rau catalog /home/dv/projects/ipython-notebooks
kev tso cai yuav tsum tau teeb tsa rau tus neeg siv lub thawv uas tam sim no muaj UID sib npaug SubUID + UID
, saib tshooj Kev nyab xeeb. Ntim Cov Cai nyob rau hauv tsab xov xwm Cov yam ntxwv tseem ceeb ntawm LXD - Linux ntim tshuab.
Teem kev tso cai ntawm tus tswv tsev, qhov twg tus tswv yuav yog tus neeg siv lub thawv jupyter
, thiab qhov sib txawv $USER
yuav qhia koj tus tswv tsev neeg siv raws li ib pawg:
sudo chown 1001000:$USER /home/dv/projects/ipython-notebooks
Nyob zoo, Ntiaj Teb! ^
Yog tias koj tseem muaj kev sib tham console qhib hauv lub thawv nrog jupyter lab, ces rov pib dua nrog tus yuam sij tshiab --notebook-dir
los ntawm kev teeb tsa tus nqi /mnt/hostfs
raws li txoj kev mus rau lub hauv paus ntawm lub laptops nyob rau hauv lub thawv rau lub ntaus ntawv uas peb tsim nyob rau hauv cov kauj ruam dhau los:
jupyter lab --ip=0.0.0.0 --no-browser --notebook-dir=/mnt/hostfs
Tom qab ntawd mus rau nplooj ntawv http://10.0.5.5:8888 thiab tsim koj thawj lub laptop los ntawm nias lub pob ntawm nplooj ntawv raws li pom hauv daim duab hauv qab no:
Tom qab ntawd, hauv daim teb ntawm nplooj ntawv, nkag mus rau Python code uas yuav tso saib cov classic Hello World!
. Thaum koj ua tiav nkag, nias CTRL+ENTER
lossis "ua si" khawm ntawm lub toolbar nyob rau sab saum toj kom JupyterLab ua qhov no:
Lub sijhawm no, yuav luag txhua yam yog npaj rau kev siv, tab sis nws yuav tsis txaus siab yog tias peb tsis nruab Python modules ntxiv (cov ntawv thov ua tiav) uas tuaj yeem nthuav dav tus qauv peev txheej ntawm Python hauv. jupyter lab, yog li ntawd, cia peb mus rau :)
PS Qhov nthuav yog qhov qub kev siv jupyter sub code npe Jupyter Phau Ntawv tsis tau ploj mus thiab nws muaj nyob rau hauv parallel nrog jupyter lab. Txhawm rau hloov mus rau qhov qub version, ua raws li qhov txuas ntxiv qhov txuas ntxiv hauv qhov chaw nyob/tree
, thiab kev hloov mus rau qhov tshiab version yog nqa tawm nrog lub ntsiab lus /lab
, tab sis nws tsis tas yuav tsum tau teev tseg:
- Jupyter Phau Ntawv - http://10.0.5.5:8888/tree
- Jupyter Lab - http://10.0.5.5:8888/lab
Expanding lub peev xwm ntawm Python ^
Nyob rau hauv seem no, peb yuav nruab xws li haib Python lus modules li numpy, pandas, matplotlib, IPyWidgets cov txiaj ntsig ntawm uas tau muab tso rau hauv lub laptops jupyter lab.
Ua ntej txhim kho cov npe Python modules los ntawm tus thawj tswj pob pip
peb yuav tsum xub daws qhov system dependencies hauv Alpine Linux:
g++
- Xav tau kev sau cov qauv, txij li qee qhov ntawm lawv tau siv hauv cov lus C ++ thiab txuas rau Python ntawm runtime ua binary modulesfreetype-dev
- kev vam khom rau Python module matplotlib
Installation dependencies:
lxc exec jupyterlab -- apk add g++ freetype-dev
Muaj ib qho teeb meem: nyob rau hauv lub xeev tam sim no ntawm Alpine Linux kev faib tawm, nws yuav tsis tuaj yeem sau cov ntawv tshiab ntawm NumPy; qhov yuam kev muab tso ua ke yuav tshwm sim uas kuv daws tsis tau:
YUAM KEV: Tsis tuaj yeem tsim lub log rau numpy uas siv PEP 517 thiab tsis tuaj yeem ntsia ncaj qha
Yog li ntawd, peb yuav nruab no module raws li ib tug system pob uas faib ib tug twb compiled version, tab sis ib tug me ntsis laus dua li tam sim no muaj nyob rau ntawm lub site:
lxc exec jupyterlab -- apk add py3-numpy py3-numpy-dev
Tom ntej no, nruab Python modules los ntawm tus thawj tswj pob pip
. Thov ua siab ntev vim qee qhov modules yuav sau thiab yuav siv sijhawm li ob peb feeb. Ntawm kuv lub tshuab, muab tso ua ke siv ~ 15 feeb:
lxc exec jupyterlab -- python3 -m pip install pandas ipywidgets matplotlib
Clearing installation caches:
lxc exec jupyterlab -- rm -rf /home/*/.cache/pip/*
lxc exec jupyterlab -- rm -rf /root/.cache/pip/*
Kev sim modules hauv JupyterLab ^
Yog koj khiav jupyter lab, rov pib dua nws kom cov tshiab tau teeb tsa modules qhib. Txhawm rau ua qhov no, hauv kev sib tham console, nyem CTRL+C
qhov twg koj muaj nws khiav thiab nkag mus y
kom tsis txhob thov thiab rov pib dua jupyter lab los ntawm nias lub xub nce rau ntawm cov keyboard kom tsis txhob nkag mus rau qhov hais kom ua dua thiab tom qab ntawd Enter
pib nws:
jupyter lab --ip=0.0.0.0 --no-browser --notebook-dir=/mnt/hostfs
Mus rau nplooj ntawv http://10.0.5.5:8888/lab lossis rov kho nplooj ntawv hauv koj tus browser, thiab tom qab ntawd nkag mus rau cov lej hauv qab no hauv lub xov tooj ntawm tes tshiab:
%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
Koj yuav tsum tau txais cov txiaj ntsig zoo li hauv daim duab hauv qab no, qhov twg IPyWidgets tsim ib qho UI ntsiab ntawm nplooj ntawv uas cuam tshuam nrog kev sib tham nrog lub hauv paus code, thiab matplotlib qhia qhov tshwm sim ntawm cov cai nyob rau hauv daim ntawv ntawm ib daim duab raws li ib tug function graph:
Ntau yam piv txwv IPyWidgets koj tuaj yeem pom nws hauv kev qhia no
Dab tsi ntxiv? ^
Ua tau zoo yog tias koj nyob thiab mus txog qhov kawg ntawm tsab xov xwm. Kuv txhob txwm tsis tshaj tawm tsab ntawv npaj ua ntej kawg ntawm tsab xov xwm uas yuav nruab jupyter lab hauv "ib nyem" los txhawb cov neeg ua haujlwm :) Tab sis koj tuaj yeem ua koj tus kheej, txij li koj twb paub yuav ua li cas, tau sau cov lus txib rau hauv ib tsab ntawv Bash :)
Koj tseem tuaj yeem:
- Teem lub npe network rau lub thawv hloov chaw nyob IP los ntawm kev sau nws hauv qhov yooj yim
/etc/hosts
thiab ntaus qhov chaw nyob hauv qhov browser http://jupyter.local:8888 - Ua si ncig nrog cov peev txheej txwv rau lub thawv, rau qhov no nyeem tshooj hauv Basic LXD muaj peev xwm lossis tau txais cov ntaub ntawv ntxiv ntawm LXD tus tsim tawm site.
- Hloov lub ntsiab:
Thiab ntau ntxiv koj tuaj yeem ua tau! Yog tag nrho. Kuv thov kom koj ua tiav!
HLOOV TSHIAB: 15.04.2020/18/30 XNUMX:XNUMX - Kho qhov yuam kev hauv tshooj βHello, Ntiaj Teb!β
HLOOV TSHIAB: 16.04.2020/10/00 XNUMX:XNUMX - Kho thiab ntxiv cov ntawv hauv cov lus piav qhia ntawm tus thawj tswj xyuas txuas ntxiv jupyter lab
HLOOV TSHIAB: 16.04.2020/10/40 XNUMX:XNUMX - Kho qhov yuam kev pom nyob rau hauv cov ntawv nyeem thiab hloov me ntsis rau qhov zoo dua tshooj "Nruab software thiab teeb tsa lub system"
Tau qhov twg los: www.hab.com