Πώς μπορώ να ενημερώσω το Anaconda;

Έχω εγκαταστήσει το Anaconda στον υπολογιστή μου και θα ήθελα να το ενημερώσω. Στο Navigator βλέπω ότι υπάρχουν πολλά μεμονωμένα πακέτα που μπορούν να ενημερωθούν, αλλά και ένα πακέτο anaconda που μερικές φορές έχει αριθμό έκδοσης και μερικές φορές λέει custom. Πώς μπορώ να προχωρήσω;

1

Αυτό που πραγματικά θέλει το 95% των ανθρώπων

Στις περισσότερες περιπτώσεις αυτό που θέλετε να κάνετε όταν λέτε ότι θέλετε να ενημερώσετε το Anaconda είναι να εκτελέσετε την εντολή:

conda update --all

(Αλλά θα πρέπει να προηγηθεί η εντολή conda update -n root conda ώστε να έχετε εγκαταστήσει την τελευταία έκδοση του conda)

Αυτό θα ενημερώσει όλα τα πακέτα στο τρέχον περιβάλλον στην πιο πρόσφατη έκδοση -- με τα ψιλά γράμματα να είναι ότι μπορεί να χρησιμοποιήσει μια παλαιότερη έκδοση κάποιων πακέτων προκειμένου να ικανοποιήσει περιορισμούς εξαρτήσεων (συχνά αυτό δεν θα'είναι απαραίτητο και όταν είναι απαραίτητο ο επιλυτής του σχεδίου πακέτων θα κάνει ό,τι μπορεί για να ελαχιστοποιήσει τις επιπτώσεις).

Αυτό πρέπει να εκτελεστεί από τη γραμμή εντολών, και ο καλύτερος τρόπος για να φτάσετε εκεί είναι από το Anaconda Navigator, στη συνέχεια την καρτέλα "Environments", στη συνέχεια κάντε κλικ στο τρίγωνο δίπλα στο περιβάλλον root, επιλέγοντας "Open Terminal":

1

Αυτή η λειτουργία θα ενημερώσει μόνο το ένα επιλεγμένο περιβάλλον (σε αυτή την περίπτωση, το περιβάλλον root). Αν έχετε και άλλα περιβάλλοντα που θέλετε να ενημερώσετε, μπορείτε να επαναλάβετε την παραπάνω διαδικασία, αλλά κάντε πρώτα κλικ στο περιβάλλον. Όταν είναι επιλεγμένο, υπάρχει ένας τριγωνικός δείκτης στα δεξιά (βλ. παραπάνω εικόνα, βήμα 3). Ή από τη γραμμή εντολών μπορείτε να δώσετε το όνομα του περιβάλλοντος (-n envname) ή τη διαδρομή (-p /path/to/env), για παράδειγμα για να ενημερώσετε το περιβάλλον dspyr από την παραπάνω εικόνα:

conda update -n dspyr --all

Ενημέρωση μεμονωμένων πακέτων

Αν ενδιαφέρεστε μόνο για την αναβάθμιση ενός μεμονωμένου πακέτου, τότε απλά κάντε κλικ στο μπλε βέλος ή στον μπλε αριθμό έκδοσης στο Navigator, π.χ. για τα πακέτα astroid ή astropy στο παραπάνω στιγμιότυπο, και αυτό θα επισημάνει αυτά τα πακέτα για αναβάθμιση. Όταν τελειώσετε, πρέπει να κάνετε κλικ στο κουμπί "Apply":

2

Ή από τη γραμμή εντολών:

conda update astroid astropy

Ενημέρωση μόνο των πακέτων της τυπικής διανομής του Anaconda

Αν δεν σας ενδιαφέρουν οι εκδόσεις των πακέτων και απλά θέλετε "το πιο πρόσφατο σύνολο όλων των πακέτων της τυπικής διανομής Anaconda, εφόσον λειτουργούν μαζί", τότε θα πρέπει να ρίξετε μια ματιά σε αυτό το gist.

Γιατί η ενημέρωση του πακέτου Anaconda είναι σχεδόν πάντα κακή ιδέα

Στις περισσότερες περιπτώσεις, η ενημέρωση του πακέτου Anaconda στη λίστα πακέτων θα έχει ένα εκπληκτικό αποτέλεσμα: μπορεί στην πραγματικότητα να αναβαθμίσετε πολλά πακέτα (στην πραγματικότητα, αυτό είναι πιθανό αν αναφέρει την έκδοση ως custom). Το παραπάνω gist παρέχει λεπτομέρειες.

Αξιοποίηση των περιβαλλόντων conda

Το root περιβάλλον σας δεν είναι πιθανότατα ένα καλό μέρος για να προσπαθήσετε να διαχειριστείτε ένα ακριβές σύνολο πακέτων: πρόκειται να είναι ένας δυναμικός χώρος εργασίας με νέα πακέτα που εγκαθίστανται και πακέτα που ενημερώνονται τυχαία. Αν χρειάζεστε ένα ακριβές σύνολο πακέτων, τότε δημιουργήστε ένα περιβάλλον conda για να τα κρατήσετε. Χάρη στην κρυφή μνήμη πακέτων του conda και τον τρόπο με τον οποίο χρησιμοποιείται η σύνδεση αρχείων αυτό είναι συνήθως i) γρήγορο και ii) καταναλώνει πολύ λίγο επιπλέον χώρο στο δίσκο. Π.χ.

conda create -n myspecialenv -c bioconda -c conda-forge python=3.5 pandas beautifulsoup seaborn nltk

Η τεκμηρίωση του conda έχει περισσότερες λεπτομέρειες και παραδείγματα.

pip, PyPI και setuptools?

Τίποτα από αυτά δεν πρόκειται να βοηθήσει στην ενημέρωση πακέτων που έχουν εγκατασταθεί από το PyPI μέσω του pip ή οποιωνδήποτε πακέτων που έχουν εγκατασταθεί με τη χρήση του python setup.py install. Το conda list θα σας δώσει κάποιες συμβουλές σχετικά με τα πακέτα Python που βασίζονται στο pip και έχετε σε ένα περιβάλλον, αλλά δεν θα'κάνει τίποτα ιδιαίτερο για να τα ενημερώσει.

Εμπορική χρήση του Anaconda ή του Anaconda Enterprise

Είναι σχεδόν ακριβώς η ίδια ιστορία, με την εξαίρεση ότι μπορεί να μην μπορείτε να ενημερώσετε το περιβάλλον root αν έχει εγκατασταθεί από κάποιον άλλο (π.χ. στο /opt/anaconda/latest). Αν δεν μπορείτε να ενημερώσετε τα περιβάλλοντα που χρησιμοποιείτε, θα πρέπει να μπορείτε να κλωνοποιήσετε και στη συνέχεια να ενημερώσετε:

conda create -n myenv --clone root
conda update -n myenv --all
Σχόλια (9)

Αν προσπαθείτε να ενημερώσετε την έκδοση του Anaconda σε μια νέα, θα παρατηρήσετε ότι η εκτέλεση του νέου εγκαταστάτη δεν θα λειτουργήσει, καθώς παραπονιέται ότι ο κατάλογος εγκατάστασης δεν είναι άδειος.

Έτσι, θα πρέπει να χρησιμοποιήσετε το conda για την αναβάθμιση, όπως περιγράφεται λεπτομερώς στα επίσημα έγγραφα:

conda update conda
conda update anaconda

ERROR conda.core.link:_execute(502): Κατά την απεγκατάσταση του πακέτου 'defaults::conda-4.5.4-py36_0' προέκυψε σφάλμα. PermissionError(13, 'Access is denied')

Σχόλια (0)

Ανοίξτε το "command or conda prompt" και εκτελέστε το:

conda update conda
conda update anaconda

Είναι καλή ιδέα να εκτελέσετε και τις δύο εντολές δύο φορές (τη μία μετά την άλλη) για να βεβαιωθείτε ότι όλα τα βασικά αρχεία έχουν ενημερωθεί.

Αυτό θα σας επαναφέρει στις τελευταίες 'releases', οι οποίες περιέχουν πακέτα που έχουν επιλεγεί από τους ανθρώπους του Continuum για να συνεργάζονται καλά μεταξύ τους.

Αν θέλετε την τελευταία έκδοση κάθε πακέτου εκτελέστε (αυτό μπορεί να οδηγήσει σε ένα ασταθές περιβάλλον):

conda update --all 

Ελπίζω αυτό να σας βοηθήσει.

Πηγές:

Σχόλια (4)