Ngaluncurkeun Jupyter kana orbit LXD

Naha anjeun kantos ngalaman ékspérimén sareng utilitas kode atanapi sistem dina Linux supados henteu hariwang ngeunaan sistem dasar sareng henteu ngancurkeun sadayana upami aya kasalahan dina kode anu kedah dijalankeun kalayan hak istimewa root?

Tapi kumaha upami kanyataan yén hayu urang nyarios anjeun kedah nguji atanapi ngajalankeun sakumpulan sagala rupa microservices dina hiji mesin? Saratus atawa malah sarébu?

Kalayan mesin virtual anu dikelola ku hypervisor, masalah sapertos kitu tiasa sareng bakal direngsekeun, tapi dina biaya naon? Contona, hiji wadah di LXD dumasar kana distribusi Alpine Linux Ubuntu meakeun wungkul 7.60MB RAM, sareng dimana partisi akar nempatan saatos ngamimitian 9.5MB! Kumaha anjeun resep éta, Elon Musk? Abdi nyarankeun mariksa kaluar kamampuan dasar LXD - sistem wadahna di Linux

Saatos janten jelas sacara umum naon wadahna LXD, hayu urang langkung jauh sareng pikir, kumaha upami aya platform panen dimana anjeun aman tiasa ngajalankeun kode pikeun host, ngahasilkeun grafik, dinamis (interaktif) ngahubungkeun widget UI- sareng kode anjeun, suplement kode jeung téks kalawan blackjack ... pormat? Sababaraha jinis blog interaktif? Wah... hoyong! Hayang! 🙂

Tingali handapeun ucing dimana urang bakal ngajalankeun dina wadahna jupyter lab - generasi saterusna panganteur pamaké tinimbang Jupyter Notebook luntur, sarta kami ogé bakal masang modul Python kayaning Numpy, pandas, matplotlib, IPyWidgets anu bakal ngamungkinkeun anjeun ngalakukeun sadayana anu didaptarkeun di luhur sareng simpen sadayana dina file khusus - laptop IPython.

Ngaluncurkeun Jupyter kana orbit LXD

Rencana take-off orbital ^

Ngaluncurkeun Jupyter kana orbit LXD

Hayu urang outline rencana aksi singket pikeun ngagampangkeun urang pikeun nerapkeun skéma di luhur:

  • Hayu urang masang sareng ngaluncurkeun wadah dumasar kana kit distribusi Alpine Linux. Kami bakal ngagunakeun distribusi ieu sabab ditujukeun pikeun minimalism sareng bakal dipasang ngan ukur parangkat lunak anu paling dipikabutuh di jerona, teu aya anu superfluous.
  • Hayu urang tambahkeun disk virtual tambahan dina wadahna sareng pasihan nami - hostfs sareng pasang kana sistem file akar. Disk ieu bakal ngamungkinkeun ngagunakeun file dina host tina diréktori anu dipasihkeun di jero wadahna. Ku kituna, data urang bakal bebas tina wadahna. Upami wadahna dihapus, data bakal tetep aya dina host. Ogé, skéma ieu mangpaat pikeun ngabagi data anu sami antara seueur wadah tanpa nganggo mékanisme jaringan standar distribusi wadahna.
  • Hayu urang pasang Bash, sudo, perpustakaan anu diperyogikeun, tambahkeun sareng konpigurasikeun pangguna sistem
  • Hayu urang pasang Python, modul sareng kompilasi katergantungan binér pikeun aranjeunna
  • Hayu urang pasang sareng peluncuran jupyter lab, Sesuaikeun penampilan, pasang ekstensi pikeun éta.

Dina artikel ieu kami baris dimimitian ku launching wadahna, urang moal mertimbangkeun masang jeung ngonpigurasikeun LXD, anjeun tiasa manggihan sagala ieu dina artikel séjén - Fitur dasar LXD - sistem wadah Linux.

Pamasangan sareng konfigurasi sistem dasar ^

Kami nyiptakeun wadah kalayan paréntah dimana kami netepkeun gambar - alpine3, identifier pikeun wadahna - jupyterlab jeung, lamun perlu, profil konfigurasi:

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

Di dieu kuring ngagunakeun profil konfigurasi hddroot nu nangtukeun nyieun wadah kalawan partisi root di Kolam Panyimpenan ayana dina disk HDD fisik:

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

Ieu masihan kuring kasempetan pikeun ékspérimén sareng wadah dina disk HDD, nyimpen sumber daya disk SSD, anu ogé sayogi dina sistem kuring 🙂 dimana kuring parantos nyiptakeun profil konfigurasi anu misah. ssdroot.

Saatos wadahna dijieun, éta dina kaayaan STOPPED, janten urang kedah ngamimitian ku ngajalankeun sistem init di dinya:

lxc start jupyterlab

Hayu urang mintonkeun daptar peti di LXD ngagunakeun konci -c nu nuduhkeun mana ctampilan olumns:

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

Nalika nyieun wadahna, alamat IP dipilih sacara acak, sabab kami nganggo profil konfigurasi default nu saméméhna ngonpigurasi dina artikel Fitur dasar LXD - sistem wadah Linux.

Urang bakal ngarobah alamat IP ieu leuwih memorable ku nyieun hiji panganteur jaringan dina tingkat wadahna, teu di tingkat profil konfigurasi sakumaha ayeuna dina konfigurasi ayeuna. Anjeun teu kedah ngalakukeun ieu, anjeun tiasa ngalangkunganana.

Nyieun panganteur jaringan eth0 nu urang numbu ka switch (jembatan jaringan) lxdbr0 dimana kami ngaktifkeun NAT numutkeun tulisan sateuacana sareng wadahna ayeuna bakal gaduh aksés ka Internét, sareng kami ogé masihan alamat IP statik kana antarmuka - 10.0.5.5:

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

Saatos nambahkeun alat, wadahna kudu rebooted:

lxc restart jupyterlab

Mariksa status wadahna:

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

Masang parangkat lunak dasar sareng nyetél sistem ^

Pikeun ngatur wadah kami, anjeun kedah pasang parangkat lunak ieu:

paket
gambaran

bash
Cangkang GNU Bourne Again

bash-parantosan
Parantosan Programmable pikeun cangkang bash

sudo
Masihan pamaké tangtu kamampuhan pikeun ngajalankeun sababaraha paréntah salaku root

kalangkang
Sandi sareng alat manajemén akun kalayan dukungan pikeun file bayangan sareng PAM

tzdata
Sumber pikeun zona waktos sareng data waktos hemat siang

nano
Editor Pico clone sareng paningkatan

Salaku tambahan, anjeun tiasa masang pangrojong dina halaman-manusia sistem ku cara masang bungkusan di handap ieu − man man-pages mdocml-apropos less

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

Hayu urang tingali paréntah sareng konci anu kami anggo:

  • lxc - Telepon klien LXD
  • exec - Metoda klien LXD anu ngajalankeun paréntah dina wadahna
  • jupyterlab - ID wadahna
  • -- - A konci husus nu nangtukeun teu napsirkeun konci salajengna salaku konci pikeun lxc sarta lulus sesa string sakumaha anu keur wadahna
  • apk - Manajer pakét distribusi Alpine Linux
  • add - Metoda manajer pakét anu masang bungkusan anu ditangtukeun saatos paréntah

Salajengna, urang bakal nyetél zona waktos dina sistem Europe/Moscow:

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

Saatos masang zona waktos, pakét tzdata henteu diperyogikeun deui dina sistem, éta bakal nyéépkeun rohangan, janten hayu urang ngahapus:

lxc exec jupyterlab -- apk del tzdata

Mariksa zona waktos:

lxc exec jupyterlab -- date

Wed Apr 15 10:49:56 MSK 2020

Dina raraga teu méakkeun loba waktu nyetel Bash pikeun pamaké anyar dina wadahna, dina léngkah di handap ieu urang bakal nyalin file skel siap-dijieun tina sistem host kana eta. Ieu bakal ngidinan Anjeun pikeun prettify Bash dina wadahna interaktif. Sistem host kuring nyaéta Manjaro Linux sareng file anu disalin /etc/skel/.bash_profile, /etc/skel/.bashrc, /etc/skel/.dir_colors prinsipna mah aranjeunna cocog pikeun Alpine Linux Ubuntu jeung teu ngabalukarkeun masalah kritis, tapi anjeun bisa mibanda distribusi béda jeung anjeun kudu bebas angka kaluar lamun aya kasalahan nalika ngajalankeun Bash dina wadahna.

Nyalin file skel kana wadahna. konci --create-dirs bakal nyiptakeun diréktori anu diperyogikeun upami henteu aya:

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

Pikeun pangguna root anu tos aya, salin file skel anu nembé disalin kana wadahna ka diréktori bumi:

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 masang cangkang sistem pikeun pangguna /bin/sh, urang bakal ngaganti eta kalawan root pamaké di Bash:

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

yen root pamaké éta teu passwordless, anjeunna kedah nyetél sandi a. Paréntah di handap ieu bakal ngahasilkeun sareng nyetél sandi acak anyar pikeun anjeunna, anu anjeun bakal katingali dina layar konsol saatos palaksanaanna:

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

Ogé, hayu urang nyiptakeun pangguna sistem énggal - jupyter pikeun nu urang bakal ngonpigurasikeun engké jupyter lab:

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

Hayu urang ngahasilkeun sareng nyetél kecap konci pikeun éta:

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

Salajengna, urang bakal ngajalankeun dua paréntah, kahiji bakal nyieun grup sistem sudo, sareng anu kadua bakal nambihan pangguna kana éta jupyter:

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

Hayu urang tingali naon grup pamaké milik jupyter:

lxc exec jupyterlab -- id -Gn jupyter

jupyter sudo

Sadayana ok, hayu urang teraskeun.

Ngidinan sadaya pangguna anu janten anggota grup sudo ngagunakeun paréntah sudo. Jang ngalampahkeun ieu, ngajalankeun skrip di handap ieu, dimana sed uncomments garis parameter dina file konfigurasi /etc/sudoers:

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

Masang sareng ngonpigurasikeun JupyterLab ^

jupyter lab nyaéta aplikasi Python, ku kituna urang mimitina kudu install juru ieu. oge, jupyter lab kami bakal masang nganggo manajer pakét Python pip, sareng sanés sistem hiji, sabab éta tiasa luntur dina gudang sistem sahingga, urang kedah sacara manual ngabéréskeun katergantungan éta ku cara masang bungkusan di handap ieu − python3 python3-dev gcc libc-dev zeromq-dev:

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

Hayu urang ngapdet modul python sareng manajer pakét pip kana versi ayeuna:

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

Masang jupyter lab via manajer pakét pip:

lxc exec jupyterlab -- python3 -m pip install jupyterlab

Kusabab ekstensi dina jupyter lab anu ékspérimén jeung teu resmi shipped kalawan jupyterlab pakét, sangkan kudu install sarta ngonpigurasikeun eta sacara manual.

Hayu urang install NodeJS jeung manajer pakét pikeun eta - NPM, saprak jupyter lab ngagunakeun aranjeunna pikeun ekstensi na:

lxc exec jupyterlab -- apk add nodejs npm

Pikeun ekstensi pikeun jupyter lab nu urang bakal install digawé, maranéhanana kudu dipasang dina diréktori pamaké saprak aplikasi bakal dibuka ti pamaké jupyter. Masalahna nyaéta teu aya parameter dina paréntah peluncuran anu tiasa dikirimkeun ka diréktori; aplikasi ngan ukur nampi variabel lingkungan sahingga urang kedah ngartikeunana. Jang ngalampahkeun ieu, urang bakal nulis paréntah ékspor variabel JUPYTERLAB_DIR di lingkungan pamaké jupyter, pikeun berkas .bashrcanu dieksekusi unggal waktos pangguna asup:

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

Paréntah salajengna bakal masang ekstensi khusus - extension manager in 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"

Ayeuna sagalana geus siap pikeun peluncuran munggaran jupyter lab, tapi urang masih bisa masang sababaraha ekstensi mangpaat:

  • toc — Daptar Eusi, ngahasilkeun daptar judul dina artikel/buku catetan
  • jupyterlab-horizon-theme - Téma UI
  • jupyterlab_neon_theme - Téma UI
  • jupyterlab-ubu-theme - Hiji deui téma ti pangarang artikel ieu :) Tapi dina hal ieu, instalasi ti Repository GitHub bakal ditémbongkeun

Janten, jalankeun paréntah di handap ieu sacara berurutan pikeun masang ekstensi ieu:

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"

Saatos masang ekstensi, urang kedah nyusun éta, sabab sateuacana, nalika pamasangan, kami parantos netepkeun konci --no-build pikeun ngahemat waktos. Ayeuna urang bakal nyepetkeun sacara signifikan ku ngahijikeunana sakaligus:

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

Ayeuna ngajalankeun dua paréntah di handap pikeun ngajalankeun eta pikeun kahiji kalina jupyter lab. Éta tiasa diluncurkeun ku hiji paréntah, tapi dina hal ieu, paréntah peluncuran, anu hese diinget dina pikiran anjeun, bakal diinget ku bash dina wadahna, sanés dina host, dimana parantos aya paréntah anu cekap. pikeun ngarekam dina sajarah :)

Login ka wadahna salaku pamaké jupyter:

lxc exec jupyterlab -- su -l jupyter

Salajengna, ngajalankeun jupyter lab kalayan konci sareng parameter sapertos anu dituduhkeun:

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

Pindah ka alamat dina browser wéb anjeun http://10.0.5.5:8888 jeung dina kaca nu muka asupkeun token aksés nu anjeun bakal nempo dina konsol nu. Salin sareng témpél dina halaman, teras klik Lebet. Saatos log in, angkat ka ménu ekstensi di kénca, sapertos anu dipidangkeun dina gambar di handap ieu, dimana anjeun bakal dipenta, nalika ngaktipkeun manajer ekstensi, nyandak résiko kaamanan ku cara masang ekstensi ti pihak katilu anu paréntahna. ngembangkeun JupyterLab henteu tanggung jawab:

Ngaluncurkeun Jupyter kana orbit LXD

Nanging, urang ngasingkeun sadayana jupyter lab sarta nempatkeun eta dina wadahna ambéh ekstensi pihak-katilu anu merlukeun sarta ngagunakeun NodeJS teu bisa sahenteuna maok data dina disk lian ti nu urang buka di jero wadahna. Meunang ka dokumén pribadi anjeun dina host di /home prosés tina wadahna saperti teu mirip sukses, sarta lamun maranehna ngalakukeun, mangka anjeun kudu boga hak husus dina file dina sistem host, saprak urang ngajalankeun wadahna dina mode unprivileged. Dumasar inpormasi ieu, anjeun tiasa ngira-ngira résiko kalebet ekstensi dina jupyter lab.

Dijieun notebook IPython (halaman dina jupyter lab) ayeuna bakal dijieun dina diréktori imah pamaké - /home/jupyter, tapi rencana urang pikeun ngabagi data (bagi) antara host sareng wadahna, janten uih deui ka konsol sareng lirén jupyter lab ku ngajalankeun hotkey - CTRL+C jeung ngajawab y kana pamundut. Lajeng nungtungan sési interaktif pamaké jupyter ngalengkepan hotkey CTRL+D.

Ngabagikeun data sareng host ^

Pikeun ngabagikeun data sareng host, anjeun kedah nyiptakeun alat dina wadah anu ngamungkinkeun anjeun ngalakukeun ieu sareng ngalakukeun ieu, jalankeun paréntah di handap ieu dimana urang netepkeun konci ieu:

  • lxc config device add - Paréntah nambihan konfigurasi alat
  • jupyter - ID tina wadahna nu ditambahkeun konfigurasi
  • hostfs - ID alat. Anjeun tiasa nyetél nami naon waé.
  • disk - Jinis alat dituduhkeun
  • path - Nangtukeun jalur dina wadah dimana LXD bakal dipasang alat ieu
  • source - Sebutkeun sumber, jalur ka diréktori dina host anu anjeun hoyong bagikeun sareng wadahna. Sebutkeun jalur numutkeun karesep anjeun
lxc config device add jupyterlab hostfs disk path=/mnt/hostfs source=/home/dv/projects/ipython-notebooks

Pikeun katalog /home/dv/projects/ipython-notebooks idin kudu disetel ka pamaké wadah anu ayeuna boga UID sarua jeung SubUID + UID, tingali bab Kasalametan. Hak Wadahna dina artikel Fitur dasar LXD - sistem wadah Linux.

Setel idin dina host, dimana nu boga bakal pamaké wadahna jupyter, jeung variabel $USER bakal nangtukeun pamaké host anjeun salaku grup:

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

Halo Dunya! ^

Upami anjeun masih gaduh sési konsol kabuka dina wadahna sareng jupyter lab, teras balikan deui ku konci anyar --notebook-dir ku netepkeun nilai /mnt/hostfs salaku jalur ka akar laptop dina wadahna pikeun alat anu urang ciptakeun dina léngkah sateuacana:

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

Lajeng buka kaca http://10.0.5.5:8888 sareng jieun laptop munggaran anjeun ku ngaklik tombol dina halaman sapertos anu dipidangkeun dina gambar di handap ieu:

Ngaluncurkeun Jupyter kana orbit LXD

Lajeng, dina widang dina kaca, asupkeun kodeu Python anu bakal nembongkeun Palasik Hello World!. Sawaktos Anjeun tos rengse ngasupkeun, pencét CTRL+ENTER atanapi tombol "muter" dina tulbar di luhur supados JupyterLab ngalakukeun ieu:

Ngaluncurkeun Jupyter kana orbit LXD

Dina titik ieu, ampir sagalana geus siap dipaké, tapi bakal jadi uninteresting lamun urang teu install modul Python tambahan (aplikasi full-fledged) nu nyata bisa dilegakeun kamampuhan standar Python dina. jupyter lab, ku kituna hayu urang teraskeun :)

PS Hal metot nyaéta yén palaksanaan heubeul jupyter handapeun ngaran kode Notebook Jupyter geus teu Isro jauh jeung eta aya dina paralel jeung jupyter lab. Pikeun pindah ka versi heubeul, turutan link nambahkeun ahiran dina alamat/tree, sarta transisi ka versi anyar dilaksanakeun kalawan sufiks /lab, tapi henteu kedah disaluyukeun:

Ngalegaan kamampuan Python ^

Dina bagian ieu, urang bakal masang modul basa Python kuat sapertos Numpy, pandas, matplotlib, IPyWidgets hasilna dihijikeun kana laptop jupyter lab.

Sateuacan masang modul Python didaptarkeun ngaliwatan manajer pakét pip urang kedah ngabéréskeun katergantungan sistem heula dina Alpine Linux:

  • g++ - Diperlukeun pikeun nyusun modul, sabab sababaraha di antarana dilaksanakeun dina basa C ++ tur sambungkeun ka Python dina runtime salaku modul binér
  • freetype-dev - kagumantungan pikeun modul Python matplotlib

Masang dependensi:

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

Aya hiji masalah: dina kaayaan distribusi Linux Alpine ayeuna, éta moal mungkin pikeun nyusun versi NumPy énggal; kasalahan kompilasi bakal muncul anu kuring henteu tiasa ngabéréskeun:

ERROR: Teu bisa ngawangun roda pikeun numpy nu make PEP 517 teu bisa dipasang langsung

Ku alatan éta, kami bakal masang modul ieu salaku pakét sistem anu ngadistribusikaeun vérsi anu parantos disusun, tapi langkung lami tibatan anu ayeuna aya dina situs:

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

Salajengna, pasang modul Python ngaliwatan manajer pakét pip. Punten janten sabar sabab sababaraha modul bakal disusun sareng peryogi sababaraha menit. Dina mesin kuring, kompilasi nyandak ~ 15 menit:

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

Ngabersihan cache pamasangan:

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

Nguji modul dina JupyterLab ^

Lamun anjeun ngajalankeun jupyter lab, balikan deui supados modul anu nembe dipasang diaktipkeun. Jang ngalampahkeun ieu, dina sési konsol, klik CTRL+C dimana anjeun boga eta ngajalankeun sarta asupkeun y pikeun ngeureunkeun pamundut teras ngamimitian deui jupyter lab ku mencét panah ka luhur dina kibor supados henteu ngalebetkeun paréntah deui teras Enter pikeun ngamimitian éta:

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

Buka halaman http://10.0.5.5:8888/lab atawa refresh kaca dina browser anjeun, terus asupkeun kodeu handap dina sél notebook anyar:

%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

Anjeun kedah nampi hasil sapertos dina gambar di handap ieu, dimana IPyWidgets ngahasilkeun unsur UI dina kaca nu interaksi interaktif jeung kode sumber, sarta ogé matplotlib mintonkeun hasil kode dina bentuk gambar salaku grafik fungsi:

Ngaluncurkeun Jupyter kana orbit LXD

Loba conto IPyWidgets anjeun tiasa mendakanana dina tutorial di dieu

Naon deui? ^

Saé upami anjeun cicing sareng dugi ka tungtung tulisan. Kuring ngahaja henteu ngeposkeun naskah anu siap-siap dina tungtung tulisan anu bakal dipasang jupyter lab dina "hiji klik" pikeun ajak pagawe :) Tapi anjeun bisa ngalakukeunana sorangan, saprak anjeun geus nyaho kumaha, sanggeus ngumpulkeun paréntah kana hiji Aksara Bash tunggal :)

Anjeun ogé tiasa:

  • Setel ngaran jaringan pikeun wadahna tinimbang hiji alamat IP ku nulis eta dina basajan /etc/hosts sareng ketik alamatna dina browser http://jupyter.local:8888
  • Maén sabudeureun kalawan wates sumberdaya pikeun wadahna, pikeun ieu baca bab dina kamampuhan LXD dasar atanapi kéngingkeun inpormasi langkung seueur ngeunaan situs pamekar LXD.
  • Robah téma:

Ngaluncurkeun Jupyter kana orbit LXD

Sareng seueur deui anu anjeun tiasa laksanakeun! Éta hungkul. Kuring miharep anjeun sukses!

UPDATE: 15.04.2020/18/30 XNUMX:XNUMX - Kasalahan anu dilereskeun dina bab "Halo, Dunya!"
UPDATE: 16.04.2020/10/00 XNUMX:XNUMX - Dilereskeun sareng nambihan téks dina katerangan aktivasina manajer ekstensi jupyter lab
UPDATE: 16.04.2020/10/40 XNUMX:XNUMX - Kasalahan anu dilereskeun dina téks sareng rada robih pikeun bab anu langkung saé "Masang parangkat lunak dasar sareng nyetél sistem"

sumber: www.habr.com

Tambahkeun komentar