Ka whakarewahia a Jupyter ki roto i te orbit LXD

Kua whakamatauhia e koe te waehere me nga taputapu punaha i Linux kia kore ai e awangawanga mo te punaha turanga me te kore e pakaru i nga mea katoa mena he he te waehere e tika ana kia whai mana pakiaka?

Engari me penei me kii me whakamatau koe ki te whakahaere i te roopu katoa o nga momo miihini miihini i runga i te miihini kotahi? Kotahi rau, kotahi mano ranei?

Ma nga miihini mariko e whakahaerehia ana e te hypervisor, ka taea, ka whakatauhia enei raru, engari he aha te utu? Hei tauira, ko te ipu i roto i te LXD i runga i te tohatoha Alpine Linux ka pau anake 7.60MB RAM, me te waahi ka noho te wehenga pakiaka i muri i te tiimatanga 9.5MB! He pehea te pai ki a koe, Elon Musk? Ka tūtohu ahau ki te tirotiro nga kaha taketake o LXD - he punaha ipu i Linux

Whai muri i te maaramatanga he aha nga ipu LXD, me haere tonu tatou ki te whakaaro, he aha mena he waahi kaikokoti penei ka taea e koe te whakahaere i te waehere mo te kaihautu, te whakaputa kauwhata, te hono (whakawhitiwhiti) nga widget UI me to waehere, tāpirihia te waehere me te kuputuhi me te blackjack... whakahōputu? He momo rangitaki tauwhitiwhiti? Aue... Kei te pirangi au! Hiahia! 🙂

Titiro ki raro i te ngeru ka whakarewahia e matou ki roto i te ipu TuhingaJupyter - te reanga o muri o te atanga kaiwhakamahi hei utu mo te Jupyter Notebook tawhito, a ka whakauruhia ano e matou nga waahanga Python penei i numpy, Pandawa, matplotlib, IPyWidgets ka taea e koe te mahi i nga mea katoa kua whakarārangihia i runga ake nei ka penapena katoa ki tetahi konae motuhake - he pona IPython.

Ka whakarewahia a Jupyter ki roto i te orbit LXD

Mahere tangohanga orbital ^

Ka whakarewahia a Jupyter ki roto i te orbit LXD

Me whakaatu he mahere mahi poto kia ngawari ake ai te whakatinana i te kaupapa i runga ake nei:

  • Me whakauru me te whakarewa i tetahi ipu i runga i te kete tohatoha Alpine Linux. Ka whakamahia e matou tenei tohatoha na te mea e whai ana ki te minimalism me te whakauru i nga punaha tino tika ki roto, kaore he mea nui.
  • Me taapiri he kopae mariko ki roto i te ipu ka hoatu he ingoa - hostfs ka whakairihia ki te punaha konae pakiaka. Ma tenei kopae ka taea te whakamahi i nga konae kei runga i te kaihautu mai i tetahi raarangi i roto i te ipu. No reira, ka noho motuhake a maatau raraunga ki te ipu. Mena ka mukua te ipu, ka noho tonu nga raraunga ki te kaihautu. Ano, he pai tenei kaupapa mo te tiri i nga raraunga kotahi i waenga i nga ipu maha me te kore e whakamahi i nga tikanga whatunga paerewa o te tohatoha ipu.
  • Me whakauru a Bash, sudo, nga whare pukapuka e tika ana, taapiri me te whirihora i tetahi kaiwhakamahi punaha
  • Me whakauru i te Python, nga waahanga me te whakahiato i nga whakawhirinaki-rua mo ratou
  • Kia tāuta me te whakarewa TuhingaJupyter, whakarite i te ahua, whakauruhia nga taapiri mo taua mea.

I roto i tenei tuhinga ka timata matou ki te whakarewa i te ipu, kaore matou e whakaaro ki te whakauru me te whirihora LXD, ka kitea e koe enei mea katoa i tetahi atu tuhinga - Ko nga ahuatanga taketake o te LXD - nga punaha ipu Linux.

Te whakaurunga me te whirihoranga o te punaha taketake ^

Ka hangaia e matou he ipu me te whakahau e tohua ai te ahua - alpine3, tohu tohu mo te ipu - jupyterlab a, mehemea e tika ana, nga korero whirihoranga:

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

I konei kei te whakamahi ahau i tetahi tohu whirihoranga hddroot e tohu ana ki te hanga ipu me te arai pakiaka ki roto Puna Rokiroki kei runga i te kōpae HDD tinana:

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

Ma tenei ka whai waahi ahau ki te whakamatau me nga ipu kei runga i te kōpae HDD, te penapena i nga rauemi o te kōpae SSD, kei te waatea hoki i taku punaha 🙂 i hanga e ahau he tohu whirihoranga motuhake. ssdroot.

I muri i te hanganga o te ipu, kei roto i te ahua STOPPED, na me timata ma te whakahaere i te punaha init kei roto:

lxc start jupyterlab

Me whakaatu he rarangi o nga ipu ki te LXD ma te whakamahi i te ki -c e tohu ana ko wai cwhakaaturanga olumi:

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

I te wa e hanga ana i te ipu, i whiriwhiria matapōkeretia te wāhitau IP, nā te mea i whakamahia e mātou he kōtaha whirihoranga default i whirihora i mua i te tuhinga Ko nga ahuatanga taketake o te LXD - nga punaha ipu Linux.

Ka huri tatou i tenei wahitau IP ki tetahi wahi maumahara ma te hanga i tetahi atanga whatunga ki te taumata ipu, kaua ki te taumata whirihoranga i te mea kei roto i te whirihoranga o naianei. Kaore koe e mahi i tenei, ka taea e koe te peke.

Te hanga atanga whatunga eth0 e hono ana matou ki te whakawhiti (piriti whatunga) lxdbr0 i taea ai e matou te NAT kia rite ki te tuhinga o mua ka whai waahi te ipu ki te Ipurangi, a ka tautapahia he wahitau IP pateko ki te atanga - 10.0.5.5:

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

I muri i te taapiri i tetahi taputapu, me whakaara ano te ipu:

lxc restart jupyterlab

Te tirotiro i te mana o te ipu:

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

Te whakauru i nga rorohiko taketake me te whakarite i te punaha ^

Hei whakahaere i ta maatau ipu, me whakauru e koe nga punaha e whai ake nei:

mōkī
Whakaahuatanga

Tuhinga
Ko te anga GNU Bourne Again

bash-otinga
Ka taea te whakaotinga mo te anga bash

Tuhinga
Hoatu ki etahi kaiwhakamahi te kaha ki te whakahaere i etahi whakahau hei putake

atarangi
Kupuhipa me nga taputapu whakahaere kaute me te tautoko mo nga konae atarangi me te PAM

tzdata
Nga puna mo te rohe wa me nga raraunga wa whakaora awatea

nano
Ko te etita Pico katote me nga whakarei

I tua atu, ka taea e koe te whakauru tautoko ki nga wharangi-tangata punaha ma te whakauru i nga kohinga e whai ake nei − man man-pages mdocml-apropos less

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

Me titiro ki nga whakahau me nga taviri i whakamahia e matou:

  • lxc — Karangatia te kiritaki LXD
  • exec - Tikanga kiritaki LXD e whakahaere ana i te whakahau i roto i te ipu
  • jupyterlab — ID ipu
  • -- - He kī motuhake e tohu ana kia kaua e whakamaori i etahi atu taviri hei mau taviri lxc ka tukuna te toenga o te aho kia rite ki te ipu
  • apk — Kaiwhakahaere kete tohatoha Alpine Linux
  • add — He tikanga kaiwhakahaere mokihi e whakauru ana i nga kohinga kua tohua i muri i te whakahau

I muri mai, ka tautuhia e matou he waahi waahi i roto i te punaha Europe/Moscow:

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

I muri i te whakauru i te rohe wa, te kete tzdata kua kore e hiahiatia i roto i te punaha, ka nui te waahi, no reira me whakakorehia:

lxc exec jupyterlab -- apk del tzdata

Takina te rohe wa:

lxc exec jupyterlab -- date

Wed Apr 15 10:49:56 MSK 2020

Kia kore ai e roa te wa ki te whakarite i te Bash mo nga kaiwhakamahi hou i roto i te ipu, i nga waahanga e whai ake nei ka kapehia e matou nga konae skel kua oti te hanga mai i te punaha manaaki ki a ia. Ma tenei ka taea e koe te whakapaipai i te Bash i roto i tetahi ipu ma te tauwhitiwhiti. Ko taku punaha manaaki ko Manjaro Linux me nga konae kei te kapehia /etc/skel/.bash_profile, /etc/skel/.bashrc, /etc/skel/.dir_colors Ko te tikanga he pai mo te Alpine Linux kaore e puta he raru nui, engari he rereke to tohatoha ka hiahia koe ki te whakaaro takitahi mena he hapa i te wa e whakahaere ana a Bash i roto i te ipu.

Tāruatia ngā kōnae kōhiwi ki te ipu. Kī --create-dirs ka waihangahia nga raarangi e tika ana mena karekau:

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

Mo te kaiwhakamahi pakiaka o naianei, kapea nga konae anga katahi ano ka kape ki roto i te ipu ki te raarangi kaainga:

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

Ka whakauruhia e Alpine Linux tetahi anga punaha mo nga kaiwhakamahi /bin/sh, ka whakakapia e matou ki root kaiwhakamahi i Bash:

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

e root karekau he kupuhipa kore te kaiwhakamahi, me whakatakoto e ia he kupuhipa. Ko te whakahau e whai ake nei ka whakaputa me te tautuhi i tetahi kupuhipa tupurangi hou mo ia, ka kite koe i te mata papatohu i muri i tana mahi:

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

Ano, me hanga he kaiwhakamahi punaha hou - jupyter ka whirihorahia e matou a muri ake nei TuhingaJupyter:

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

Me whakaputa me te whakarite kupuhipa mo taua mea:

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

I muri mai, ka mahia e matou nga whakahau e rua, ko te tuatahi ka hangaia he roopu punaha sudo, a ko te tuarua ka taapiri he kaiwhakamahi ki a ia jupyter:

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

Kia kite tatou he aha nga roopu o te kaiwhakamahi jupyter:

lxc exec jupyterlab -- id -Gn jupyter

jupyter sudo

Kei te pai nga mea katoa, me haere tonu tatou.

Whakaaetia nga kaiwhakamahi katoa he mema o te roopu sudo whakamahi whakahau sudo. Ki te mahi i tenei, whakahaere i te tuhinga e whai ake nei, kei hea sed ka whakakorehia te raina tawhā i te konae whirihoranga /etc/sudoers:

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

Te whakauru me te whirihora i a JupyterLab ^

TuhingaJupyter he tono Python, no reira me whakauru tuatahi tenei kaiwhakamaori. Ano hoki, TuhingaJupyter ka whakauruhia e matou ma te whakamahi i te kaiwhakahaere putea Python pip, kaua ko te punaha kotahi, na te mea kua tawhitotia pea i roto i te putunga punaha na reira, me whakatau a-ringa i nga whakawhirinakitanga ma te whakauru i nga kohinga e whai ake nei − python3 python3-dev gcc libc-dev zeromq-dev:

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

Kia whakahōuhia ngā kōwae python me te kaiwhakahaere mōkihi pip ki te putanga o nāianei:

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

Whakauruhia TuhingaJupyter mā te kaiwhakahaere mōkihi pip:

lxc exec jupyterlab -- python3 -m pip install jupyterlab

Mai i nga toronga i roto TuhingaJupyter he whakamatautau me te kore e tukuna mana me te kete jupyterlab, na me whakauru me te whirihora a ringa.

Kia whakauruhia a NodeJS me te kaiwhakahaere kete mo taua mea - NPM, mai TuhingaJupyter whakamahia ana mo ona toronga:

lxc exec jupyterlab -- apk add nodejs npm

Ki nga toronga mo TuhingaJupyter ka whakauruhia e matou i mahi, me whakauru ki te raarangi kaiwhakamahi mai i te mea ka whakarewahia te tono mai i te kaiwhakamahi jupyter. Ko te raru ko te kore he tawhā i roto i te whakahau whakarewanga ka taea te tuku ki te raarangi; ka whakaae noa te tono ki tetahi taurangi taiao, no reira me tautuhi. Hei mahi i tenei, ka tuhia e matou te whakahau kaweake taurangi JUPYTERLAB_DIR i roto i te taiao o te kaiwhakamahi jupyter, ki te konae .bashrcka mahia i nga wa katoa ka takiuru te kaiwhakamahi:

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

Ko te whakahau e whai ake nei ka whakauruhia he toronga motuhake - kaiwhakahaere toronga ki roto TuhingaJupyter:

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

Inaianei kua rite nga mea katoa mo te whakarewatanga tuatahi TuhingaJupyter, engari ka taea tonu te whakauru i etahi taapiri whaihua:

  • toc — Ripanga Ihirangi, ka whakaputa i te rarangi pane ki roto i te tuhinga/pukapuka
  • jupyterlab-horizon-theme — Kaupapa UI
  • jupyterlab_neon_theme — Kaupapa UI
  • jupyterlab-ubu-theme - Ko tetahi atu kaupapa mai i te kaituhi tenei tuhinga :) Engari i tenei keehi, ka whakaatuhia te whakaurunga mai i te rehitatanga GitHub

Na, whakahaerehia nga whakahau e whai ake nei ki te whakauru i enei toronga:

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"

I muri i te whakauru i nga taapiri, me whakahiato e matou, na te mea i mua, i te wa o te whakaurunga, i tohua e matou te ki --no-build ki te whakaora wa. Inaianei ka tere ake taatau ma te whakahiato i a raatau i te waa kotahi:

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

Whakahaerehia nga whakahau e rua e whai ake nei hei whakahaere mo te wa tuatahi TuhingaJupyter. Ka taea te whakarewa me te whakahau kotahi, engari i tenei keehi, ko te whakahau whakarewatanga, he uaua ki te mahara i roto i to hinengaro, ka maumaharahia e te bash i roto i te ipu, kaua ki te kaihautu, kei te nui nga whakahau. ki te tuhi i a raatau ki te hitori :)

Takiuru ki te ipu hei kaiwhakamahi jupyter:

lxc exec jupyterlab -- su -l jupyter

Whai muri, rere TuhingaJupyter me nga taviri me nga tawhā kua tohua:

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

Haere ki te wāhitau kei tō pūtirotiro tukutuku http://10.0.5.5:8888 a ki te wharangi e tuwhera ana tomo tohu uru e kite koe i roto i te papatohu. Tāruahia ka whakapiri ki runga i te wharangi, ka paato Takiuru. Whai muri i te takiuru, haere ki te tahua toronga kei te taha maui, penei i te ahua i raro nei, ka akiakihia koe, i te wa e whakahohehia ana te kaiwhakahaere toronga, ki te tango i nga tupono haumarutanga ma te whakauru i nga taapiri mai i nga roopu tuatoru mo te whakahau. JupyterLab whanaketanga kaore he kawenga:

Ka whakarewahia a Jupyter ki roto i te orbit LXD

Heoi, kei te wehea e matou te katoa TuhingaJupyter ka tuu ki roto i te ipu kia kore ai e taea e nga toronga tuatoru-tuatoru e hiahia ana me te whakamahi i te NodeJS te tahae raraunga i runga i te kōpae atu i era ka whakatuwherahia e tatou i roto i te ipu. Haere ki o tuhinga tūmataiti i runga i te kaihautu i roto /home Ko nga tukanga mai i te ipu kaore pea e angitu, a, ki te mahia, me whai mana koe ki nga konae kei runga i te punaha manaaki, na te mea ka whakahaerehia e matou te ipu ki roto. aratau kore. I runga i enei korero, ka taea e koe te aromatawai i te tupono ki te whakauru atu ki roto TuhingaJupyter.

I waihangahia nga pukatuhi IPython (wharangi kei roto TuhingaJupyter) ka hangaia inaianei i roto i te whaiaronga kainga o te kaiwhakamahi - /home/jupyter, engari ko ta maatau mahere ko te wehewehe i nga raraunga (tuha) i waenga i te kaihautu me te ipu, no reira hoki mai ki te papatohu ka mutu TuhingaJupyter ma te whakamahi i te paatene wera - CTRL+C me te whakautu y i runga i te tono. Kātahi ka whakamutua te wātū pāhekoheko a te kaiwhakamahi jupyter te whakaoti i te kī wera CTRL+D.

Te tiri raraunga ki te kaihautu ^

Hei tohatoha raraunga ki te kaihautu, me hanga e koe he taputapu ki roto i te ipu ka taea e koe te mahi i tenei me te mahi i tenei, whakahaere i te whakahau e whai ake nei ka tohua e matou nga taviri e whai ake nei:

  • lxc config device add - Ka taapirihia e te whakahau te whirihoranga taputapu
  • jupyter — ID o te ipu ka taapirihia te whirihoranga
  • hostfs — ID Pūrere. Ka taea e koe te tautuhi i tetahi ingoa.
  • disk — Kua tohua te momo taputapu
  • path — Ka tautuhi i te ara i roto i te ipu ka mauhia e LXD tenei taputapu
  • source — Tauwhāitihia te puna, te ara ki te whaiaronga i runga i te kaihautu e hiahia ana koe ki te tiri ki te ipu. Tauwhāitihia te ara kia rite ki o hiahia
lxc config device add jupyterlab hostfs disk path=/mnt/hostfs source=/home/dv/projects/ipython-notebooks

Mo te pukapuka /home/dv/projects/ipython-notebooks me tautuhi te whakaaetanga ki te kaiwhakamahi ipu kei a ia he UID rite ki SubUID + UID, tirohia te pene Haumaru. Nga Tikanga Ipu i roto i te tuhinga Ko nga ahuatanga taketake o te LXD - nga punaha ipu Linux.

Whakatakotoria te whakaaetanga ki te kaihautu, ko te rangatira ko te kaiwhakamahi ipu jupyter, me te taurangi $USER ka whakawhāitihia to kaiwhakamahi manaaki hei roopu:

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

Kia ora, World! ^

Mena kei a koe he waahi papatohu e tuwhera ana i roto i te ipu me TuhingaJupyter, ka tīmata anō ki te kī hōu --notebook-dir ma te whakarite i te uara /mnt/hostfs hei huarahi ki te putake o nga pona rorohiko i roto i te ipu mo te taputapu i hanga e matou i te taahiraa o mua:

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

Na ka haere ki te wharangi http://10.0.5.5:8888 ka hanga i to pona tuatahi ma te panui i te paatene i te wharangi penei i te pikitia i raro nei:

Ka whakarewahia a Jupyter ki roto i te orbit LXD

Na, i roto i te mara o te wharangi, whakauruhia te waehere Python ka whakaatu i te matarohia Hello World!. Ka mutu to urunga, pehia CTRL+ENTER te paatene "takaro" ranei i runga i te paeutauta kei runga kia taea e JupyterLab tenei mahi:

Ka whakarewahia a Jupyter ki roto i te orbit LXD

I tenei wa, tata nga mea katoa kua rite mo te whakamahi, engari kare he pai ki te kore e whakauruhia e matou etahi atu waahanga Python (tono-katoa) ka taea te whakanui ake i nga kaha paerewa o Python TuhingaJupyter, no reira, kia anga whakamua :)

PS Ko te mea whakamere ko te whakatinanatanga tawhito jupyter i raro i te ingoa waehere Jupyter Notebook kare ano i pahemo, ka noho rite tonu TuhingaJupyter. Hei huri ki te putanga tawhito, whai i te hono me te taapiri i te pimuri ki te wahitau/tree, a ko te whakawhiti ki te putanga hou ka mahia me te kumara /lab, engari kaore e tika kia tohua:

Te whakawhanui i nga kaha o Python ^

I tenei waahanga, ka whakauruhia e matou nga waahanga reo Python kaha penei numpy, Pandawa, matplotlib, IPyWidgets ko nga hua ka whakauruhia ki roto i nga rorohiko rorohiko TuhingaJupyter.

I mua i te whakauru i nga waahanga Python kua whakarārangihia ma te kaiwhakahaere kete pip me whakatau tuatahi tatou i nga whakawhirinakitanga punaha i Alpine Linux:

  • g++ — E hiahiatia ana mo te whakahiato i nga waahanga, na te mea kua whakatinanahia etahi o enei ki te reo C ++ me te hono atu ki te Python i te wa whakahaere hei waahanga takirua
  • freetype-dev - te ti'aturi mo te kaupapa Python matplotlib

Tāuta ana i ngā whakawhirinakitanga:

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

Kotahi te raru: i te ahuatanga o naianei o te tohatoha Alpine Linux, kaore e taea te whakahiato i te putanga hou o NumPy; ka puta he hapa whakahiato kaore i taea e au te whakatau:

HAPA: Kaore e taea te hanga wira mo te numpy e whakamahi ana i te PEP 517 kaore e taea te whakauru tika

Na reira, ka whakauruhia e matou tenei waahanga hei putea punaha e tohatoha ana i tetahi putanga kua whakahiatohia, engari he pakeke ake i nga mea e waatea ana i runga i te waahi inaianei:

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

Muri iho, whakauruhia nga waahanga Python ma te kaiwhakahaere kete pip. Tena koa kia manawanui na te mea ka whakahiato etahi waahanga ka roa pea he meneti. I runga i taku miihini, ka roa te whakahiato ~15 meneti:

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

E whakawātea ana i ngā keteroki tāutanga:

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

Whakamātautau kōwae i JupyterLab ^

Mena kei te oma koe TuhingaJupyter, whakaara ano kia whakahohehia nga waahanga hou kua whakauruhia. Ki te mahi i tenei, i roto i te waahi papatohu, pawhiria CTRL+C kei hea koe e rere ana ka tomo y kia mutu te tono ka timata ano TuhingaJupyter mā te pēhi i te pere whakarunga i runga i te papapātuhi kia kore ai e tomo ano te whakahau, katahi ano Enter hei timata:

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

Haere ki te whaarangi http://10.0.5.5:8888/lab tāmatahia rānei te whārangi i tō pūtirotiro, kātahi ka tāuruhia te waehere e whai ake nei ki tētahi pūtau pukatuhi hōu:

%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

Me whiwhi koe i te hua penei i te pikitia i raro nei, kei hea IPyWidgets ka whakaputa i tetahi huānga UI i runga i te wharangi e pahekoheko ana me te waehere puna, me te hoki matplotlib he whakaatu i te hua o te waehere i te ahua o te pikitia hei kauwhata mahi:

Ka whakarewahia a Jupyter ki roto i te orbit LXD

He maha nga tauira IPyWidgets ka kitea e koe i roto i nga akoranga konei

He aha atu? ^

Ka pai mena ka noho koe ka tae ki te mutunga o te tuhinga. I ata kore ahau i tuku i tetahi tuhinga kua rite ki te mutunga o te tuhinga ka whakaurua TuhingaJupyter i roto i te "kotahi paato" ki te whakatenatena i nga kaimahi :) Engari ka taea e koe te mahi i a koe ano, na te mea kua mohio koe me pehea, kua kohia nga whakahau ki te tuhinga Bash kotahi :)

Ka taea hoki e koe:

  • Tautuhia he ingoa whatunga mo te ipu hei utu mo te wahitau IP ma te tuhi ngawari /etc/hosts ka patohia te wāhitau ki te pūtirotiro http://jupyter.local:8888
  • Takarohia te tepe rauemi mo te ipu, mo tenei panui te upoko ki roto nga kaha LXD taketake te tiki atu korero ranei mo te pae kaiwhakawhanake LXD.
  • Hurihia te kaupapa:

Ka whakarewahia a Jupyter ki roto i te orbit LXD

He maha atu ano ka taea e koe! Heoi ano. Ko taku hiahia kia angitu koe!

WHAKAMAHI: 15.04.2020/18/30 XNUMX:XNUMX - Kua whakatikahia nga hapa o te upoko "Kia ora, e te Ao!"
WHAKAMAHI: 16.04.2020/10/00 XNUMX:XNUMX - Kua whakatikahia me te taapiri i nga tuhinga i roto i te whakamaarama mo te whakahohenga kaiwhakahaere toronga TuhingaJupyter
WHAKAMAHI: 16.04.2020/10/40 XNUMX:XNUMX — Kua whakatikahia nga hapa i kitea i roto i te tuhinga me te whakarereke paku mo te pai ake o te upoko "Te whakauru i nga punaha me te whakarite i te punaha"

Source: will.com

Tāpiri i te kōrero