Na-ebunye Jupyter n'ime LXD orbit

Ị nwetụla ịnwale koodu ma ọ bụ akụrụngwa sistemụ na Linux ka ị ghara ichegbu onwe gị maka sistemụ ntọala ma ghara ịkwatu ihe niile ma ọ bụrụ na njehie dị na koodu ahụ kwesịrị iji ikike mgbọrọgwụ rụọ ọrụ?

Mana kedu maka eziokwu ahụ ka anyị kwuo na ịkwesịrị ịnwale ma ọ bụ mee otu ụyọkọ microservices dị iche iche n'otu igwe? Otu narị ma ọ bụ ọbụna otu puku?

Site na igwe mebere nke onye hypervisor na-elekọta, nsogbu ndị dị otú ahụ nwere ike ma dozie ya, mana n'ihi gịnị? Dịka ọmụmaatụ, akpa dị na LXD dabere na nkesa Alpine Linux na-eri naanị 7.60MB RAM, na ebe mgbọrọgwụ nkebi bi mgbe mmalite 9.5MB! Kedu ka nke ahụ si amasị gị, Elon Musk? Ana m akwado ịlele ikike bụ isi nke LXD - sistemu akpa na Linux

Mgbe ọ bịara doo anya n'ozuzu ihe arịa LXD bụ, ka anyị gaa n'ihu chee echiche, gịnị ma ọ bụrụ na enwere ụdị ihe ọkụkụ dị otú ahụ ebe ị nwere ike ịgba ọsọ koodu maka onye ọbịa, mepụta eserese, na-ejikọta UI wijetị na koodu gị, jiri blackjack tinye koodu ahụ na ederede... nhazi? Ụfọdụ ụdị blọgụ mmekọrịta? Chei... Achọrọ m ya! Achọrọ! 🙂

Lee n'okpuru pusi ebe anyị ga-amalite na akpa ụlọ nyocha jupyter - ọgbọ ọzọ nke interface onye ọrụ kama nke akwụkwọ ndetu Jupyter ochie, anyị ga-etinyekwa ụdị Python dị ka. Nọmba, Pandas, matplotlib, Wijetị IPy nke ga-enye gị ohere ịme ihe niile edepụtara n'elu wee chekwaa ya niile na faịlụ pụrụ iche - laptọọpụ IPython.

Na-ebunye Jupyter n'ime LXD orbit

Atụmatụ iwepụ orbital ^

Na-ebunye Jupyter n'ime LXD orbit

Ka anyị depụta obere atụmatụ ime ihe iji mee ka ọ dịrị anyị mfe itinye atụmatụ a n'elu:

  • Ka anyị wụnye wee malite akpa dabere na ngwa nkesa Linux Alpine. Anyị ga-eji nkesa a n'ihi na ọ na-achọ minimalism ma wụnye naanị sọftụwia kachasị mkpa na ya, ọ nweghị ihe ọ bụla.
  • Ka anyị tinyekwuo diski mebere n'ime akpa wee nye ya aha - hostfs ma tinye ya na sistemụ faịlụ mgbọrọgwụ. Disk a ga-eme ka o kwe omume iji faịlụ dị na onye ọbịa sitere na ndekọ enyere n'ime akpa ahụ. Ya mere, data anyị ga-adabere na akpa ahụ. Ọ bụrụ na ehichapụ akpa ahụ, data ga-adị na onye ọbịa. Ọzọkwa, atụmatụ a bara uru maka ịkekọrịta otu data n'etiti ọtụtụ akpa na-ejighi usoro netwọk ọkọlọtọ nke nkesa akpa.
  • Ka anyị tinye Bash, sudo, ọba akwụkwọ dị mkpa, tinye ma hazie onye ọrụ sistemụ
  • Ka anyị tinye Python, modul ma chịkọta ọnụọgụ abụọ dabere maka ha
  • Ka anyị wụnye na igba egbe ụlọ nyocha jupyter, Hazie ọdịdị ahụ, tinye mgbakwunye maka ya.

N'isiokwu a, anyị ga-amalite site na ịmalite akpa ahụ, anyị agaghị atụle ịwụnye na ịhazi LXD, ị nwere ike ịhụ ihe a niile na edemede ọzọ - Akụkụ bụ isi nke LXD - Sistemụ akpa Linux.

Nwụnye na nhazi nke usoro isi ^

Anyị na-emepụta akpa nwere iwu nke anyị na-akọwapụta onyonyo a - alpine3, ihe nchọpụta maka akpa - jupyterlab na, ọ bụrụ na ọ dị mkpa, profaịlụ nhazi:

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

Ebe a ka m na-eji profaịlụ nhazi hddroot nke na-akọwapụta imepụta akpa nwere nkebi mgbọrọgwụ n'ime Ọdọ mmiri nchekwa dị na diski HDD anụ ahụ:

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

Nke a na-enye m ohere ịnwale arịa na diski HDD, na-echekwa akụrụngwa nke diski SSD, nke dịkwa na sistemụ m 🙂 nke m mepụtara profaịlụ nhazi dị iche. ssdroot.

Mgbe emechara akpa ahụ, ọ dị na steeti STOPPED, yabụ anyị kwesịrị ịmalite ya site na iji sistemụ init n'ime ya:

lxc start jupyterlab

Ka anyị jiri igodo gosipụta ndepụta arịa dị na LXD -c nke na-egosi nke cngosi olumns:

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

Mgbe ị na-eke akpa ahụ, a na-ahọrọ adreesị IP na enweghị usoro, ebe anyị na-eji profaịlụ nhazi default nke ahaziri na mbụ na akụkọ Akụkụ bụ isi nke LXD - Sistemụ akpa Linux.

Anyị ga-agbanwe adreesị IP a ka ọ bụrụ nke a na-echefu echefu site na ịmepụta netwọk netwọk na ọkwa akpa, ọ bụghị na ọkwa profaịlụ nhazi dịka ọ dị ugbu a na nhazi ugbu a. Ị gaghị eme nke a, ị nwere ike ịgafe ya.

Ịmepụta interface netwọk eth0 nke anyị na-ejikọta na mgba ọkụ (njikọ netwọk) lxdbr0 nke anyị nyere NAT aka dị ka isiokwu gara aga na akpa ahụ ga-enweta ịntanetị ugbu a, anyị na-ekenye adreesị IP static na interface ahụ - 10.0.5.5:

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

Ka ịgbakwunye ngwaọrụ, akpa ahụ ga-emerịrịrịrị:

lxc restart jupyterlab

Na-enyocha ọkwa nke akpa ahụ:

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

Ịwụnye ngwanrọ bụ isi na ịtọlite ​​​​usoro ^

Iji hazie akpa anyị, ịkwesịrị ịwụnye ngwanro ndị a:

ngwugwu
Description

bash
GNU Bourne Again shei

bash-emecha
Mmecha mmemme maka shei bash

sudo
Nye ụfọdụ ndị ọrụ ikike ịme ụfọdụ iwu dị ka mgbọrọgwụ

onyinyo
Okwuntughe na ngwa njikwa akaụntụ nwere nkwado maka faịlụ onyinyo na PAM

tzdata
Isi mmalite maka mpaghara oge na data nchekwa ụbọchị

nano
Pico editọ clone nwere nkwalite

Na mgbakwunye, ịnwere ike ịwụnye nkwado na ibe sistemụ mmadụ site na ịwụnye ngwugwu ndị a - man man-pages mdocml-apropos less

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

Ka anyị lee iwu na igodo ndị anyị ji mee ihe:

  • lxc - Kpọọ onye ahịa LXD
  • exec - Usoro ndị ahịa LXD na-eme iwu n'ime akpa
  • jupyterlab - NJ arịa
  • -- - igodo pụrụ iche nke na-akọwapụtaghị ịkọwa igodo ọzọ dị ka igodo maka lxc ma nyefee eriri nke fọdụrụ ka ọ dị na akpa ahụ
  • apk - Onye njikwa ngwugwu nkesa Alpine Linux
  • add - Usoro njikwa ngwugwu nke na-etinye ngwugwu akọwapụtara mgbe iwu ahụ gasịrị

Ọzọ, anyị ga-edozi mpaghara oge na usoro Europe/Moscow:

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

Mgbe ị wụnye mpaghara oge, ngwugwu tzdata adịghịzi mkpa na sistemụ, ọ ga-eweghara ohere, yabụ ka anyị hichapụ ya:

lxc exec jupyterlab -- apk del tzdata

Na-enyocha mpaghara oge:

lxc exec jupyterlab -- date

Wed Apr 15 10:49:56 MSK 2020

Ka ị ghara iwepụta oge dị ukwuu ịtọlite ​​​​Bash maka ndị ọrụ ọhụrụ n'ime akpa, n'ime usoro ndị a, anyị ga-eṅomi faịlụ skel emebere emebere site na sistemụ nnabata na ya. Nke a ga-enye gị ohere ịme Bash mma n'ime akpa mmekọrịta. Sistemụ nnabata m bụ Manjaro Linux na faịlụ ndị a na-e copyomi /etc/skel/.bash_profile, /etc/skel/.bashrc, /etc/skel/.dir_colors na ụkpụrụ ha dabara maka Alpine Linux ma ghara ịkpata nsogbu dị oke egwu, mana ị nwere ike ịnwe nkesa dị iche ma ịkwesịrị ịchọpụta n'onwe gị ma ọ bụrụ na enwere njehie mgbe ị na-agba Bash n'ime akpa.

Detuo faịlụ skel na akpa. Igodo --create-dirs ga-emepụta akwụkwọ ndekọ aha ndị dị mkpa ma ọ bụrụ na ha adịghị:

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

Maka onye ọrụ mgbọrọgwụ dị ugbu a, detuo faịlụ skel ndị e depụtaghachiri n'ime akpa ahụ gaa na ndekọ ụlọ:

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 na-etinye shei sistemụ maka ndị ọrụ /bin/sh, anyị ga-eji dochie ya root onye ọrụ na Bash:

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

na root onye ọrụ ahụ enweghị paswọọdụ, ọ kwesịrị ịtọ paswọọdụ. Iwu a ga-ewepụta ma debe ya paswọọdụ ọhụrụ, nke ị ga-ahụ na ihuenyo njikwa mgbe emechara ya:

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

Ọzọkwa, ka anyị mepụta onye ọrụ sistemụ ọhụrụ - jupyter nke anyị ga-ahazi ma emechaa ụlọ nyocha jupyter:

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

Ka anyị mepụta ma tọọ paswọọdụ maka ya:

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

Ọzọ, anyị ga-eme iwu abụọ, nke mbụ ga-emepụta otu usoro sudo, na nke abụọ ga-agbakwunye onye ọrụ na ya jupyter:

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

Ka anyị hụ otu ndị ọrụ nwere jupyter:

lxc exec jupyterlab -- id -Gn jupyter

jupyter sudo

Ihe niile dị mma, ka anyị gawa n'ihu.

Hapụ ndị ọrụ niile bụ ndị otu a sudo jiri iwu sudo. Iji mee nke a, gbaa edemede na-esonụ, ebe sed uncomments akara oke na faịlụ nhazi /etc/sudoers:

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

Ịwụnye na ịhazi JupyterLab ^

ụlọ nyocha jupyter bụ ngwa Python, yabụ anyị ga-ebu ụzọ tinye ntụgharị okwu a. Ọzọkwa, ụlọ nyocha jupyter anyị ga-etinye n'iji njikwa ngwugwu Python pip, ma ọ bụghị usoro otu, n'ihi na ọ nwere ike ịbụ ihe ochie na ebe nchekwa sistemu ya mere, anyị ga-eji aka dozie ihe ndabere maka ya site na ịwụnye ngwugwu ndị a - python3 python3-dev gcc libc-dev zeromq-dev:

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

Ka anyị kwalite Python modul na njikwa ngwugwu pip ruo ụdị ugbu a:

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

Wụnye ụlọ nyocha jupyter site na njikwa ngwugwu pip:

lxc exec jupyterlab -- python3 -m pip install jupyterlab

Ebe ọ bụ na extensions na ụlọ nyocha jupyter bụ nnwale na ejighị ngwungwu jupyterlab ebubata ya n'ihu ọha, yabụ anyị ga-eji aka tinye ma hazie ya.

Ka anyị tinye NodeJS na onye njikwa ngwugwu maka ya - NPM, ebe ọ bụ ụlọ nyocha jupyter na-eji ha maka ndọtị ya:

lxc exec jupyterlab -- apk add nodejs npm

Ka ndọtị maka ụlọ nyocha jupyter nke anyị ga-etinye na-arụ ọrụ, ha kwesịrị ka etinyere na ndekọ onye ọrụ ebe ọ bụ na a ga-ewepụta ngwa ahụ site na onye ọrụ jupyter. Nsogbu a bụ na ọ nweghị oke na iwu mmalite nke enwere ike ịfefe na ndekọ; ngwa a na-anabata naanị mgbanwe gburugburu ebe obibi, yabụ anyị ga-akọwarịrị ya. Iji mee nke a, anyị ga-ede iwu mbupụ agbanwe agbanwe JUPYTERLAB_DIR na gburugburu onye ọrụ jupyter, ịgba akwụkwọ .bashrcnke a na-egbu oge ọ bụla onye ọrụ batara:

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

Iwu na-esote ga-etinye ndọtị pụrụ iche - njikwa ndọtị in ụlọ nyocha jupyter:

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

Ugbu a ihe niile dị njikere maka mbido mbụ ụlọ nyocha jupyter, mana anyị ka nwere ike ịwụnye mgbakwunye ole na ole bara uru:

  • toc - Isiokwu ọdịnaya, na-ewepụta ndepụta nke isiokwu na edemede/akwụkwọ ndetu
  • jupyterlab-horizon-theme - UI isiokwu
  • jupyterlab_neon_theme - UI isiokwu
  • jupyterlab-ubu-theme - Ọzọ isiokwu si n'aka odee isiokwu a :) Ma n'okwu a, a ga-egosipụta nrụnye sitere na ebe nchekwa GitHub

Yabụ, mee iwu ndị a n'usoro iji wụnye ndọtị ndị a:

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"

Mgbe ị wụnye ihe ndọtị ahụ, anyị ga-achịkọta ha, ebe ọ bụ na mbụ, n'oge echichi, anyị akọwapụtara igodo --no-build iji chekwaa oge. Ugbu a, anyị ga-eme ngwa ngwa site n'ịchịkọta ha ọnụ n'otu oge:

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

Ugbu a, gbaa iwu abụọ a ka iji mee ya nke mbụ ụlọ nyocha jupyter. Ọ ga-ekwe omume iji otu iwu malite ya, ma na nke a, iwu mmalite, nke siri ike icheta n'uche gị, ga-echeta ya site na bash na akpa, ọ bụghị na onye ọbịa, ebe enwererịrị iwu zuru oke. idekọ ha na akụkọ ihe mere eme :)

Banye na akpa dị ka onye ọrụ jupyter:

lxc exec jupyterlab -- su -l jupyter

Na-esote, gbaa ọsọ ụlọ nyocha jupyter na igodo na paramita dị ka egosiri:

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

Gaa na adreesị na ihe nchọgharị weebụ gị http://10.0.5.5:8888 na ibe na-emepe tinye akara nweta nke ị ga-ahụ na console. Detuo ma mado ya na ibe, wee pịa Banye. Mgbe ịbanyechara, gaa na menu ndọtị dị n'aka ekpe, dị ka egosiri na foto dị n'okpuru ebe a, ebe a ga-akpali gị, mgbe ị na-eme ka njikwa ndọtị rụọ ọrụ, were ihe egwu nchekwa site na ịwụnye ndọtị sitere na ndị ọzọ nke iwu nyere. Mmepe JupyterLab ọ bụghị maka ya:

Na-ebunye Jupyter n'ime LXD orbit

Agbanyeghị, anyị na-ekewapụta ihe niile ụlọ nyocha jupyter ma tinye ya n'ime akpa ka ndọtị ndị ọzọ na-achọ ma jiri NodeJS enweghị ike izu ohi data na diski ọzọ karịa ndị anyị na-emeghe n'ime akpa ahụ. Nweta akwụkwọ nkeonwe gị na onye ọbịa n'ime /home Usoro sitere na akpa enweghị ike ịga nke ọma, ma ọ bụrụ na ha emee, mgbe ahụ ịkwesịrị ịnwe ohere na faịlụ na sistemụ nnabata, ebe ọ bụ na anyị na-agbaba akpa ahụ. ọnọdụ enweghị ohere. Dabere na ozi a, ị nwere ike ịchọpụta ihe ize ndụ nke itinye mgbakwunye na ụlọ nyocha jupyter.

Akwụkwọ ndetu IPython emepụtara (ibe ndị dị na ụlọ nyocha jupyter) a ga-emepụta ugbu a na ndekọ ụlọ onye ọrụ - /home/jupyter, mana atụmatụ anyị bụ kewaa data (kekọrịta) n'etiti onye ọbịa na akpa, yabụ laghachi na njikwa ma kwụsị ụlọ nyocha jupyter site na ime hotkey - CTRL+C na ịza y mgbe arịrịọ. Mgbe ahụ kwusi nnọkọ mmekọrịta nke onye ọrụ jupyter emecha hotkey CTRL+D.

Ịkekọrịta data n'etiti onye ọbịa ^

Iji kesaa data na onye ọbịa, ịkwesịrị ịmepụta ngwaọrụ n'ime akpa nke na-enye gị ohere ime nke a ma mee nke a, mee iwu na-esonụ ebe anyị na-akọwa igodo ndị a:

  • lxc config device add - Iwu ahụ na-agbakwụnye nhazi ngwaọrụ
  • jupyter - ID nke akpa nke agbakwunyere nhazi
  • hostfs - NJ ngwaọrụ. Ị nwere ike ịtọ aha ọ bụla.
  • disk - E gosipụtara ụdị ngwaọrụ ahụ
  • path - Ezipụta ụzọ n'ime akpa nke LXD ga-ebunye ngwaọrụ a
  • source - Ezipụta isi iyi, ụzọ na ndekọ na usu na ị chọrọ ịkọrọ na akpa. Ezipụta ụzọ dịka mmasị gị siri dị
lxc config device add jupyterlab hostfs disk path=/mnt/hostfs source=/home/dv/projects/ipython-notebooks

Maka katalọgụ /home/dv/projects/ipython-notebooks Ekwesịrị ịtọ ikike na onye ọrụ akpa nwere UID ugbu a SubUID + UID, lee isiakwụkwọ Nchekwa. Ihe ùgwù akpa ke ibuotikọ oro Akụkụ bụ isi nke LXD - Sistemụ akpa Linux.

Tọọ ikike na onye ọbịa, ebe onye nwe ya ga-abụ onye ọrụ akpa jupyter, na mgbanwe $USER ga-akọwapụta onye ọrụ nnabata gị dị ka otu:

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

Ndewo Ụwa! ^

Ọ bụrụ na ị ka nwere nnọkọ console mepere n'ime akpa ya ụlọ nyocha jupyter, wee malitegharịa ya na ọhụrụ igodo --notebook-dir site na ịtọ uru /mnt/hostfs dị ka ụzọ mgbọrọgwụ nke laptọọpụ n'ime akpa maka ngwaọrụ anyị mepụtara na nzọụkwụ gara aga:

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

Mgbe ahụ gaa na ibe http://10.0.5.5:8888 wee mepụta laptọọpụ mbụ gị site na ịpị bọtịnụ dị na ibe dị ka egosiri na foto dị n'okpuru:

Na-ebunye Jupyter n'ime LXD orbit

Mgbe ahụ, n'ọhịa dị na ibe ahụ, tinye koodu Python nke ga-egosipụta kpochapụ Hello World!. Mgbe ịmechara ịbanye, pịa CTRL+ENTER ma ọ bụ bọtịnụ "egwu" dị na toolbar dị n'elu ka JupyterLab mee nke a:

Na-ebunye Jupyter n'ime LXD orbit

N'oge a, ihe fọrọ nke nta ka ọ bụrụ ihe niile dị njikere maka ojiji, mana ọ ga-abụ ihe na-enweghị mmasị ma ọ bụrụ na anyị etinyeghị modul Python ọzọ (ngwa zuru oke) nke nwere ike gbasaa ike ọkọlọtọ nke Python na nke ọma. ụlọ nyocha jupyterYa mere, ka anyị gaa n'ihu :)

PS Ihe na-adọrọ mmasị bụ na mmejuputa ochie Jupyterị n'okpuru koodu aha Akwụkwọ Jupyter apụbeghị ma ọ dị na ya ụlọ nyocha jupyter. Ka ịgbanwee gaa na ụdị ochie, soro njikọ na-agbakwunye suffix na adreesị/tree, na ntughari na ụdị ọhụrụ a na-eme ya na suffix /lab, mana ekwesighi ịkọwa ya:

Ịgbasawanye ike nke Python ^

Na ngalaba a, anyị ga-etinye modul asụsụ Python dị ike dị ka Nọmba, Pandas, matplotlib, Wijetị IPy Nsonaazụ nke etinyere na laptọọpụ ụlọ nyocha jupyter.

Tupu ịwụnye modul Python edepụtara edepụtara site na njikwa ngwugwu pip anyị ga-ebu ụzọ dozie ndabere sistemụ na Alpine Linux:

  • g++ - Achọrọ maka mkpokọta modul, ebe ọ bụ na etinyere ụfọdụ n'ime ha n'asụsụ C + ma jikọọ na Python na oge ojiri gaa dịka modul ọnụọgụ abụọ
  • freetype-dev - ndabere maka Python modul matplotlib

Ịwụnye ndabere:

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

Enwere otu nsogbu: na ọnọdụ nkesa Alpine Linux dị ugbu a, ọ gaghị ekwe omume ịchịkọta ụdị ọhụrụ nke NumPy; njehie nchịkọta ga-apụta na enweghị m ike idozi:

njehieEnweghị ike iwu wiil maka ọnụọgụ nke na-eji PEP 517 na enweghị ike itinye ya ozugbo

Ya mere, anyị ga-etinye modul a dị ka ngwugwu sistemu nke na-ekesa ụdị agbakọtalarị, mana ọ dị ntakịrị karịa nke dị ugbu a na saịtị:

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

Na-esote, wụnye Python modul site na njikwa ngwugwu pip. Biko nwee ndidi ka ụfọdụ modul ga-achịkọta ma nwee ike were nkeji ole na ole. Na igwe m, nchịkọta were ~ nkeji iri na ise:

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

Na-ehichapụ cache nrụnye:

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

Modul ule na JupyterLab ^

Ọ bụrụ na ị na-agba ọsọ ụlọ nyocha jupyter, Malitegharịa ya ka emee ka modul arụnyere ọhụrụ arụ ọrụ. Iji mee nke a, na nnọkọ njikwa, pịa CTRL+C ebe i nwere ya na-agba ọsọ banye y ịkwụsị arịrịọ wee malite ọzọ ụlọ nyocha jupyter site na ịpị akụ elu na kiiboodu ka ị ghara itinye iwu ahụ ugboro ugboro Enter ibido ya:

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

Gaa na ibe http://10.0.5.5:8888/lab ma ọ bụ megharịa ibe ahụ na ihe nchọgharị gị, wee tinye koodu a na cell akwụkwọ ọhụrụ:

%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

Ị kwesịrị ị nweta nsonaazụ dị ka foto dị n'okpuru ebe a Wijetị IPy na-ewepụta ihe UI na ibe nke na-emekọrịta ihe na koodu isi mmalite, yana kwa matplotlib na-egosiputa nsonaazụ koodu ahụ n'ụdị eserese dị ka eserese ọrụ:

Na-ebunye Jupyter n'ime LXD orbit

Ọtụtụ ihe atụ Wijetị IPy ị nwere ike ịhụ ya na nkuzi ebe a

Kedu ihe ọzọ? ^

Emeela nke ọma ma ọ bụrụ na ị nọrọ wee ruo na njedebe nke akụkọ ahụ. Ejighị m ụma biputere edemede emebere na njedebe nke isiokwu ga-arụnye ụlọ nyocha jupyter na "otu pịa" iji gbaa ndị ọrụ ume :) Ma ị nwere ike ime ya n'onwe gị, ebe ọ bụ na ị maralarị otú, na-anakọta iwu n'ime otu edemede Bash :)

Ị nwekwara ike:

  • Tọọ aha netwọkụ maka akpa karịa adreesị IP site na ide ya n'ụzọ dị mfe /etc/hosts ma pịnye adreesị na ihe nchọgharị ahụ http://jupyter.local:8888
  • Jiri oke akụrụngwa egwu egwu egwu, maka nke a gụọ isiakwụkwọ n'ime ikike LXD bụ isi ma ọ bụ nweta ozi ndị ọzọ na saịtị ndị nrụpụta LXD.
  • Gbanwee isiokwu:

Na-ebunye Jupyter n'ime LXD orbit

Na ọtụtụ ihe ọzọ ị nwere ike ime! Ọ gwụla. Achọrọ m gị ịga nke ọma!

Emelitere: 15.04.2020/18/30 XNUMX:XNUMX - Njehie emeziri n'isiakwụkwọ "Ndewo, Ụwa!"
emelitere: 16.04.2020/10/00 XNUMX:XNUMX - Edoziziri yana gbakwunyere ederede na nkọwa nke ịgbalite njikwa ndọtị ụlọ nyocha jupyter
Emelitere: 16.04.2020/10/40 XNUMX:XNUMX - Achọpụtara njehie ndị emeziri na ederede wee gbanwee ntakịrị ka mma isi nke "Ịwụnye ngwa ngwa na ịtọlite ​​​​sistemu"

isi: www.habr.com

Tinye a comment