Χρήση Conda¶
Περιγραφή¶
Το Anaconda
είναι μια ελεύθερη και open-source συλλογή πακέτων, των γλωσσών προγραμματισμού Python και R, για την επιστημονική πληροφορική (επιστήμη δεδομένων, εφαρμογές μηχανικής μάθησης, επεξεργασία δεδομένων μεγάλης κλίμακας, προγνωστικά αναλύσεις κλπ.), που αποσκοπεί στην απλοποίηση της διαχείρισης πακέτων.
Το Anaconda
περιέχει μια σύλλογη εκατοντάδων πακέτων, μεταξύ αυτών, τον package manager, conda
, ο οποίος μπορεί πολύ εύκολα να εγκαταστήσει και να ενημερώσει τα επιθυμητά πακέτα αλλά και τα dependencies τους.
Το conda
είναι επίσης environment manager. Αυτό σημαίνει ότι μπορούμε εύκολα να δημιουργούμε και να εναλλάσουμε εικονικά περιβάλλοντα. Αυτό είναι πολύ χρήσιμο, στην περίπτωση που θέλουμε να έχουμε διαφορετικές εκδόσεις από κάποιο εργαλείο ή ζητείται από κάποιο πρόγραμμα, έτσι μπορούμε να δημιουργήσουμε ένα νέο εικονικό περιβάλλον και να μην επηρεάσουμε το σύστημα μας. Για όποιον έχει εμπειρία από τον pip
manager, είναι παρόμοιο με το virtualenv
.
Για τη χρήση του package και environment manager conda
στην ιδρυματική συστοιχία, παρέχεται μία κεντρική εγκατάσταση του πακέτου miniconda
, το οποίο είναι μέρος της συλλογής Anaconda
και περιέχει μόνο τον package manager conda
.
Αυτό σημαίνει ότι οποιαδήποτε πακέτα της συλλογής Anaconda
θέλουμε να χρησιμοποιήσουμε πρέπει να εγκατασταθούν σε κάποιο εικονικό περιβάλλον όπως φαίνεται στη συνέχεια.
Κεντρική εγκατάσταση του conda
Η ιδρυματική συστοιχία "Αριστοτέλης" παρέχει μία κεντρική εγκατάσταση του miniconda
, για τη χρήση της οποίας απαιτείται από το χρήστη, η αρχικοποίηση του περιβάλλοντος miniconda3
.
Η αρχικοποίηση του περιβάλλοντος miniconda3
γίνεται με τις παρακάτω εντολές:
# module load gcc/<version> miniconda3
# source $CONDA_PROFILE/conda.sh
Χρήση¶
Base environment
Το conda
ορίζει από μόνο του ένα default βασικό εικονικό περιβάλλον, το οποίο ονομάζεται base
.
Είναι σημαντικό να μην εγκαθιστούμε επιπλέον πακέτα στο base
. Για να προσθέσουμε πακέτα δημιουργούμε ένα νέο conda environment
.
-
Για να δημιουργήσουμε ένα νέο εικονικό περιβάλλον με όνομα
newEnv
, γράφουμε:# conda create --name newEnv
-
Για να το ενεργοποιήσουμε και να μεταβούμε σε αυτό, γράφουμε:
# conda activate newEnv
Αν η ενεργοποίηση έγινε επιτυχώς, θα δούμε το όνομα του εικονικού περιβάλλοντος στην αρχή του bash prompt.
Terminal Output
[username@aristotle4 ~]$ conda activate newEnv (newEnv) [username@aristotle4 ~]$
Info
Από εδώ και πέρα ό,τι αλλαγές και προσθήκες κάνουμε θα εφαρμοστούν στο
newEnv
. -
Για να δούμε το σύνολο των περιβαλλόντων, μπορούμε να πληκτρολογήσουμε:
# conda info --envs
Το αποτέλεσμα θα είναι κάπως έτσι:
Terminal Output
(newEnv) [username@aristotle4 ~]$ conda info --envs # conda environments: # base /mnt/apps/aristotle/site/linux-centos7-x86_64/gcc-8.2.0/miniconda3-4.5.11-oqs2mbgv3mmo3dll2f2rbxt4plfgyqzv newEnv * /home/<u>/<username>/.conda/envs/newEnv
Info
Ο αστερίσκος υποδεικνύει ποιό είναι το ενεργό εικονικό περιβάλλον.
-
Για να επιστρέψουμε στο
base
απλά γράφουμε:# conda deactivate
-
Για να δημιουργήσουμε τον κλώνο ενός εικονικού περιβάλλοντος που έχει όνομα newEnv, γράφουμε:
# conda create --clone newEnv --name newEnv2
-
Τέλος, για να διαγράψουμε το εικονικό περιβάλλον και τα περιεχόμενα του, γράφουμε:
# conda env remove --name newEnv
Python version
Για τη δημιουργία ενός νέου εικονικού περιβάλλοντος, το Anaconda χρησιμοποιεί την έκδοση της Python του συστήματος. Αν θέλουμε κάποια διαφορετική έκδοση, πρέπει να το ορίσουμε στην εντολή δημιουργίας. Για παράδειγμα:
# conda create --name newEnv python=3.4
Χειρισμός πακέτων¶
Ο σημαντικότερος λόγος που χρησιμοποιούμε το conda
είναι η διαχείριση των πακέτων. Για να δούμε ποιά πακέτα έχουμε ήδη εγκατεστημένα στο εικονικό περιβάλλον που βρισκόμαστε, απλά γράφουμε στο τερματικό:
# conda list
Προφανώς θα πρέπει πρώτα να έχουμε ενεργοποιήσει το εικονικό περιβάλλον όπως δείξαμε παραπάνω.
-
Για να αναζητήσουμε κάποιο πακέτο στο repository του
Anaconda
χρησιμοποιούμε την εντολή:# conda search <package>
Το σύνολο των διαθέσιμων πακέτων μπορεί να βρεθεί εδώ.
Προσθήκη Channels
Τα
channels
είναι repositories στα οποία τοconda
package manager μπορεί να αναζητήσει πακέτα για εγκατάσταση. Εάν κάποιο πακέτο που θέλουμε να εγκαταστήσουμε δεν είναι διαθέσιμο στα default channels, μπορούμε να προσθέσουμε ένα επιπλέον channel με την εντολή:# conda config --add channels <new_channel>
Προτεραιότητα του channel
Η παραπάνω εντολή προσθέτει το νέο channel στην κορυφή της λίστας με αποτέλεσμα να αποκτά την υψηλότερη προτεραιότητα. Περισσότερες πληφορορίες σχετικά με το θέμα είναι διαθέσιμες στο conda.io
Για παράδειγμα, ενα χρήσιμο channel για bioinformatics software είναι το Bioconda. Εφόσον έχουμε εγκαταστήσει το
Αnaconda
, για να προσθέσουμε τοBioconda
αρκεί να τρέξουμε τις εντολές που αναφέρονται εδώ. -
Για να εγκαταστήσουμε ενα πακέτο χρησιμοποιούμε την εντολή:
# conda install <package>
Εγκατάσταση πολλαπλών πακέτων με μία εντολή
Αν τα πακέτα που θέλουμε να χρησιμοποιήσουμε είναι περισσότερα του ενός, προτείνεται να γίνεται εγκατάσταση των ζητούμενων πακέτων με την εντολή
conda install
, ακολουθούμενη από τα πακέτα χωρισμένα με κενό. Με αυτό τον τρόπο, είμαστε σίγουροι ότι δεν θα υπάρξει dependecy conflict μεταξύ των πακέτων.# conda install spyder pathlib2
-
Χρησιμοποιώντας την
conda list
μπορούμε να δούμε αν προστέθηκε στη λίστα του εικονικού περιβάλλοντος το πακέτο μας. Μπορούμε, επίσης, να δούμε το ιστορικό των αλλαγών στο εικονικό περιβάλλον γράφοντας:# conda list --revisions
-
Για να ενημερώσουμε ενα πακέτο, απλά γράφουμε:
# conda update <package>
-
Τέλος, για να αφαιρέσουμε ενα ή περισσότερα πακέτα από το εικονικό περιβάλλον στο οποίο βρισκόμαστε, γράφουμε:
# conda remove spyder pathlib2
Χρήση του conda στη συστοιχία¶
Για να χρησιμοποιήσουμε το conda
σε μια εργασία την οποία θέλουμε να υποβάλλουμε στην ιδρυματική συστοιχία αρκεί να προσθέσουμε στο script μας, πριν τις εντολές του conda, τις ακόλουθες εντολές:
# module load gcc miniconda3
# source $CONDA_PROFILE/conda.sh
# conda activate myEnv
# export PATH=$CONDA_PREFIX/bin:$PATH
Παράδειγμα batch script
#!/bin/bash
#SBATCH -J conda-test
# conda commands
module load gcc miniconda3
source $CONDA_PROFILE/conda.sh
conda activate myEnv
export PATH=$CONDA_PREFIX/bin:$PATH
# code to be executed
Περισσότερες πληροφορίες
Περισσότερες πληροφορίες για την υποβολή εργασιών, θα βρείτε στην ενότητα Σειριακές εργασίες.
Για πιο προχωρημένα θέματα σχετικά με το conda
, μπορείτε να συμβουλευτείτε το επίσημο documentation.