Hyppää sisältöön

Welcome to our weekly research support coffee hour on Zoom! Click here for more information.

Warning!

Puhti scratch disk is becoming very full (80+ % ) resulting in performance degradation. Everybody is advised to only keep actively processed data on scratch, all other data should be deleted, transferred to host institute or stored in Lumi-O. No new quota will be granted. Click here for a tool for examining your disk usage.

Puuttuvien Python-kirjastojen lisääminen Pythioniin SD Desktopissa

Oletuksena Ubuntu 22.04:ään perustuvissa SD Desktop -virtuaalikoneissa on asennettuna Python 3.10.12 (python3).

SD Desktopin Python3 sisältää yli 300 yleisesti käytettyä kirjastoa, kuten pandas, numpy ja scipy. Voit tarkistaa asennettujen kirjastojen täydellisen luettelon komennolla:

pip list

Koska Python-kirjastoja on saatavilla valtava määrä, saatat melko usein haluta käyttää kirjastoa, jota ei ole saatavilla SD Desktopissa.

Tavallisissa tietokoneissa ongelma voidaan ratkaista helposti lisäämällä puuttuva kirjasto komennolla pip install. Kuitenkin, koska SD Desktop -virtuaalikoneilla ei ole internetyhteyttä, et voi suorittaa pip install -komentoa tavalliseen tapaan.

Jos aiot käyttää SD Desktopissa monimutkaista Python-ympäristöä, paras ratkaisu on rakentaa Apptainer-säiliö, joka sisältää kaikki tarvitsemasi Python-kirjastot, ja tuoda säiliö SD Desktopiin.

Jos sinun kuitenkin tarvitsee lisätä vain muutama puuttuva kirjasto, voit luoda Pythonin virtuaaliympäristön puuttuvien kirjastojen lisäämiseksi. Tämä ohje esittelee kaksi tapaa lisätä puuttuvia Python-kirjastoja olemassa olevaan Python-ympäristöön SD Desktopissa. Esimerkkikirjastona käytämme SciKit-Optimize-kirjastoa.

Vaihtoehto 1: add-python-lib-työkalu

Add-python-lib on aputyökalu, jota voidaan käyttää Python-kirjastojen lisäämiseen Pythonin virtuaaliympäristöön SD Desktop -virtuaalikoneessa. Tämä työkalu voidaan lisätä virtuaalikoneellesi SD Software installer -työkalulla

Komennon perussyntaksi on:

add-python-lib search_term 

Komento etsii vastaavia paketteja niiden Python-kirjastojen joukosta, jotka CSC on esiladannut SD Connectiin. Huomaa, että esiladattu kirjastovalikoima on hyvin pieni (joitakin satoja) verrattuna yli 300 000 kirjastoon, jotka ovat saatavilla pipin kautta. Lähetä pyyntö CSC:n asiakastukeen, jos tarvitset kirjaston lisättäväksi valikoimaan. Huomaa, että kaikki Python-kirjastot eivät ole yhteensopivia tämän lähestymistavan kanssa.

Valittu kirjasto lisätään Pythonin virtuaaliympäristöön, joka sijaitsee hakemistossa /shared-directory/sd-tools/python3-venv. Tämä virtuaaliympäristö luodaan automaattisesti, kun add-python-lib -työkalua käytetään ensimmäisen kerran.

SciKit-Optimizen tapauksessa voit tehdä asennuksen komennolla:

add-python-lib scikit 

tai

add-python-lib scikit_optimize 

Huomaa, että hakutermi SciKit-Optimize ei löydä yhtään vastaavaa kirjastoa, koska hakuprosessi perustuu pip-asennustiedostojen nimiin, joissa käytetään vain pieniä kirjaimia ja joissa väliviivat (-) on korvattu alaviivoilla (_).

Jos käyttämäsi hakutermi vastaa useita Python-kirjastoja, työkalu näyttää luettelon kirjastoista, joista voit valita asennettavan kirjaston.

Tämän jälkeen työkalu kysyy, pitäisikö myös valitun kirjaston riippuvuudet asentaa. Yleensä sinun kannattaa yrittää asentaa myös riippuvuudet.

Kun asennus on valmis, voit siirtyä käyttämään Pythonin virtuaaliympäristöä komennoilla:

source /shared-directory/sd-tools/python3-venv/bin/activate
export PYTHONPATH=/usr/lib/python3/dist-packages:/usr/local/lib/python3.10/dist-packages

Vaihtoehto 2: Moduulin tuominen SD Connectin kautta

1. Asennustiedoston lataaminen SD Desktopia varten

Ensimmäinen tehtävä on ladata pip-asennuspakettitiedosto kirjastolle, jota haluat käyttää. Tämä täytyy tehdä SD Desktopin ulkopuolella. Voit etsiä paketin Pypi-repositoriosta tai käyttää komentoa pip download, jos koneellasi on asennettuna python3 (jos mahdollista, käytä Python-versiota, joka vastaa SD Desktopin Python-versiota).

1.1 Pypi-repositorio

SciKit-Optimizen tapauksessa haku Pypi-repositoriossa antaa projektiluettelon. SciKit-Optimize on luettelon ensimmäinen kohde. Voit jatkaa SciKit-Optimize-projektisivulle, jossa download-linkki tarjoaa luettelon ladattavista tiedostoista. Tässä voisimme ladata valmiiksi käännetyn kirjastotiedoston (scikit_optimize-0.10.2-py2.py3-none-any.whl ).

1.2 pip komentorivillä

Luo paikallisella koneellasi uusi hakemisto, käytä pip download -komentoa asennustiedostojen lataamiseen ja paketoi tämä hakemisto siirtämistä varten. Käyttäjän asund tapauksessa Linuxissa tai Macissa SciKit-Optimize-kirjasto voidaan paketoida komennoilla:

mkdir scikit-optimize
pip download scikit-optimize -d "/home/asund/scikit-optimize"
tar cvfz scikit-optimize.tgz scikit-optimize

1.3 Lataaminen palveluun

Seuraavaksi sinun tulee ladata asennuspaketti (scikit_optimize-0.10.2-py2.py3-none-any.whl tai scikit-optimize.tgz) palveluun yhteen dataämpäreistäsi SD Connectissa.

2. Kirjaston asentaminen

Kun olet ladannut asennuspaketin SD Connectiin, teet loput asennusvaiheista SD Desktop -ympäristössäsi.

  1. Avaa pääteistunto ja luo Pythonin virtuaaliympäristö komennolla (tämä tarvitsee tehdä vain kerran):

    python3 -m venv $HOME/my-python
    
  2. Aktivoi Pythonin virtuaaliympäristösi ja lisää oletus-python-kirjastojen sijainti PYTHONPATH-ympäristömuuttujaan: (tämä täytyy tehdä aina, kun aloitat uuden pääteistunnon)

    source $HOME/my-python/bin/activate
    export PYTHONPATH=/usr/local/lib/python3.10/site-packages
    
  3. Avaa tai päivitä DataGateway-yhteytesi ja kopioi scikit-optimize.tgz paikalliselle levyllesi.

  4. Pura paketti

    tar zxvf scikit-optimize.tgz
    
  5. Siirry uuteen hakemistoon:

    cd scikit-optimize
    
  6. Asenna paketti:

    pip install scikit_optimize-0.9.0-py2.py3-none -any-whl -f ./ --no-index --no-deps
    

Nyt pythonin (joka osoittaa sijaintiin $HOME/my-python/bin/python) pitäisi sisältää scikit_optimize-kirjasto.

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta