tutorials:conda

This is an old revision of the document!


Conda

Conda è un sistema per poter gestire più progetti basati su diverse versioni di python e di librerie.

L'idea di base è quella di creare un “ambiente” personale (environment) basato su una certa versione di python e caricarci le librerie necessarie per il proprio progetto. Gli ambienti sono indipendenti.

Di norma, conda è pensato per utenti singoli ma sono riuscito a installarlo in modalità condivisa, così da poter creare diversi enviroment preconfigurati standard che possono essere usati clonati o usati direttamente, se non serve aggiungere librerie.

Quando l'utente si logga sul sistema, conda non è caricato. Non l'ho fatto caricare di default perché - per funzionare - viene inserito all'inizio del path, sostituendo diversi comandi di sistema coi suoi.

Per caricarlo, l'utente deve eseguire esplicitamente:

loadconda

È un alias caricato tramite .bashrc e quindi disponibile per tutti gli script eseguiti dalla shell, compresi quelli da passare a slurm. Fatto questo conda è disponibile, compresa la bash completion.

Per elencare gli environment:

conda env list

Ho creato degli environment base con le varie versioni di python. Per alcuni, ho anche aggiungo torch e cuda, anche questi in varie versioni. Ho cercato di dare dei nomi significativi. Se ne possono ovviamente creare altri configurati come meglio credi.

L'utente può usare uno degli environment esistenti, ma non può aggiungere librerie a meno che l'environment non sia suo. Oppure può clonare un environment esistente dandogli un nome sensato. L'environment clonato è il suo e può farci quel che vuole, senza influenzare gli altri utenti.

Per clonare un environment:

conda create --name ilmiopy312 --clone py312

Per usare un environment bisogna attivarlo:

conda activate ilmiopy312

Il prompt della bash viene modificato aggiungendo il nome dell'environment per ricordare che è attivo. Si possono installare librerie con pip, pipx, eseguire gli script e fare tutto quello che si farebbe normalmente.

Per disattivare l'environment:

conda deactivate

Aggiungo che con questo sistema è anche possibile installare applicazioni e utilizzarle. Ho installato, per esempio, whisperx e insanely-fast-whisper in due environment dedicati. Chiunque, attivando quel environment, può usare l'applicazione senza doverla re-installare e le diverse dipendenze delle due non creano problemi a livello di sistema operativo. Per esempio:

conda activate whisperx

L'eseguibile finirà nel path ed eventuali variabili di sistema necessarie per lo specifico applicativo vengono pescate dal environment dell'utente. Esempio:

whisperx --language en --model large-v3 --diarize \
    --hf_token $HF_TOKEN  \
    DesertIslandDiscs-20220313-RobertPlantSingerAndSongwriter.mp3

Oppure (dopo averlo attivato con conda):

insanely-fast-whisper --language English \
    --hf_token $HF_TOKEN \
    --file-name tmp/DesertIslandDiscs-20160110-AlexCrawford.mp3 

In entrambi i casi $HF_TOKEN è quello definito nel file .bashrc dell'utente.

  • tutorials/conda.1709551778.txt.gz
  • Last modified: 2024/03/04 12:29
  • by eros