Προγραμματισμός

Virtualenv και venv: Εξηγήθηκαν εικονικά περιβάλλοντα Python

Για όλους τους λόγους που η Python είναι επιτυχημένη με προγραμματιστές, ένας από τους μεγαλύτερους είναι η ευρεία και συνεχώς επεκτεινόμενη επιλογή πακέτων τρίτων. Βολικά πακέτα εργαλείων για τα πάντα, από την απορρόφηση και τη μορφοποίηση δεδομένων έως τα μαθηματικά υψηλής ταχύτητας και τη μηχανική εκμάθηση είναι απλά ένα εισαγωγή ή εγκατάσταση pip Μακριά.

Αλλά τι συμβαίνει όταν αυτά τα πακέτα δεν παίζουν ωραία μεταξύ τους; Τι κάνετε όταν διαφορετικά έργα Python χρειάζονται ανταγωνιστικές ή ασύμβατες εκδόσεις των ίδιων πρόσθετων; Εκεί μπαίνουν στο παιχνίδι εικονικά περιβάλλοντα Python.

Μπορείτε να δημιουργήσετε και να εργαστείτε με εικονικά περιβάλλοντα τόσο στο Python 2 όσο και στο Python 3, αν και τα εργαλεία είναι διαφορετικά. Το Virtualenv είναι το εργαλείο επιλογής για το Python 2, ενώ το venv χειρίζεται την εργασία στο Python 3.

Τι είναι τα εικονικά περιβάλλοντα Python;

Ένα εικονικό περιβάλλον είναι ένας τρόπος για να έχετε πολλές, παράλληλες παρουσίες του διερμηνέα Python, καθεμία με διαφορετικά σύνολα πακέτων και διαφορετικές διαμορφώσεις. Κάθε εικονικό περιβάλλον περιέχει ένα ξεχωριστό αντίγραφο του διερμηνέα Python, συμπεριλαμβανομένων αντιγράφων των βοηθητικών προγραμμάτων υποστήριξης.

Τα πακέτα που είναι εγκατεστημένα σε κάθε εικονικό περιβάλλον εμφανίζονται μόνο σε αυτό το εικονικό περιβάλλον και κανένα άλλο. Ακόμα και μεγάλα, πολύπλοκα πακέτα με δυαδικά αρχεία που εξαρτώνται από την πλατφόρμα μπορούν να αφαιρεθούν το ένα από το άλλο σε εικονικά περιβάλλοντα.

Υπάρχουν μερικές κοινές περιπτώσεις χρήσης για ένα εικονικό περιβάλλον:

  1. Αναπτύσσετε πολλά έργα που εξαρτώνται από διαφορετικές εκδόσεις των ίδιων πακέτων ή έχετε ένα έργο που πρέπει να απομονωθεί από συγκεκριμένα πακέτα λόγω σύγκρουσης χώρου ονομάτων. Αυτή είναι η πιο τυπική περίπτωση χρήσης.
  2. Εργάζεστε σε περιβάλλον Python όπου δεν μπορείτε να τροποποιήσετε τον κατάλογο πακέτων ιστότοπων. Αυτό μπορεί να συμβαίνει επειδή εργάζεστε σε ένα πολύ ελεγχόμενο περιβάλλον, όπως διαχειριζόμενη φιλοξενία ή σε διακομιστή όπου η επιλογή διερμηνέα (ή πακέτα που χρησιμοποιούνται σε αυτήν) δεν μπορεί να αλλάξει λόγω των απαιτήσεων παραγωγής.
  3. Θέλετε να πειραματιστείτε με έναν συγκεκριμένο συνδυασμό πακέτων κάτω από εξαιρετικά ελεγχόμενες συνθήκες, για παράδειγμα για να ελέγξετε τη συμβατότητα μεταξύ των συμβατών ή την προηγούμενη συμβατότητα.
  4. Θέλετε να εκτελέσετε μια «βασική» έκδοση του διερμηνέα Python σε ένα σύστημα χωρίς πακέτα τρίτων και να εγκαταστήσετε μόνο πακέτα τρίτων για κάθε μεμονωμένο έργο, όπως απαιτείται.

Τίποτα δεν λέει ότι δεν μπορείτε απλά να αποσυσκευάσετε μια βιβλιοθήκη Python σε έναν υποφάκελο ενός έργου και να το χρησιμοποιήσετε με αυτόν τον τρόπο. Ομοίως, θα μπορούσατε να κατεβάσετε ένα αυτόνομο αντίγραφο του διερμηνέα Python, να το αποσυσκευάσετε σε ένα φάκελο και να το χρησιμοποιήσετε για να εκτελέσετε σενάρια και πακέτα που είναι αφιερωμένα σε αυτόν.

Αλλά η διαχείριση τέτοιων λιθόστρωτων έργων γίνεται σύντομα δύσκολη. Μόνο φαίνεται πιο εύκολο να το κάνεις αυτό στην αρχή. Η εργασία με πακέτα που έχουν δυαδικά στοιχεία ή που βασίζονται σε περίπλοκες εξαρτήσεις τρίτων, μπορεί να είναι ένας εφιάλτης. Η καλύτερη μακροπρόθεσμη λύση είναι να χρησιμοποιήσετε τους εγγενείς μηχανισμούς της Python για τη δημιουργία και την εργασία με εικονικά περιβάλλοντα.

Εικονικά περιβάλλοντα στο Python 3

Το Virtualenv έχει αποδειχθεί απαραίτητο για αμέτρητους προγραμματιστές της Python, αλλά δεν αποτελεί μέρος της τυπικής βιβλιοθήκης της Python. Το Python 3 διαθέτει εγγενή εργαλεία για εικονικά περιβάλλοντα που καθιστούν ολόκληρη τη διαδικασία αρκετά απλή.

Σχετικό βίντεο: Πώς ο Python διευκολύνει τον προγραμματισμό

Ιδανικό για IT, η Python απλοποιεί πολλά είδη εργασίας, από τον αυτοματισμό του συστήματος έως την εργασία σε πρωτοποριακούς τομείς όπως η μηχανική μάθηση.

Δημιουργήστε το εικονικό περιβάλλον

Για να δημιουργήσετε ένα εικονικό περιβάλλον σε έναν δεδομένο κατάλογο, πληκτρολογήστε:

python3 -m venv / διαδρομή / προς / κατάλογο

(Σημειώστε ότι μπορείτε απλώς να χρησιμοποιήσετεΠύθων αντί python3 εάν το σύστημά σας αναγνωρίζει Πύθων ως προεπιλεγμένος διερμηνέας Python 3.)

Η όλη διαδικασία ρύθμισης του εικονικού περιβάλλοντος μπορεί να διαρκέσει ένα ή δύο λεπτά. Όταν τελειώσει, θα πρέπει να έχετε έναν κατάλογο με μερικούς υποκαταλόγους σε αυτόν. Ο πιο σημαντικός υποκατάλογος είναιαποθήκη στο Unix ήΣενάρια στα Windows, όπου θα βρείτε το αντίγραφο του διερμηνέα Python για το εικονικό περιβάλλον μαζί με τα βοηθητικά προγράμματα.

Σημειώστε ότι επειδή κάθε εικονικό περιβάλλον περιέχει το δικό του αντίγραφο του διερμηνέα Python, μπορεί να είναι αρκετά μεγάλο. Σε Windows και Linux, ένα εικονικό περιβάλλον Python 3.6 θα καταναλώνει περίπου 23 MB χώρου στο δίσκο.

Ενεργοποιήστε το εικονικό περιβάλλον

Για να μπορέσετε να χρησιμοποιήσετε αυτό το εικονικό περιβάλλον, θα πρέπει να κάνετε ρητά θέτω εις ενέργειαν το. Η ενεργοποίηση καθιστά το εικονικό περιβάλλον τον προεπιλεγμένο διερμηνέα Python για τη διάρκεια της συνεδρίας.

Θα πρέπει να χρησιμοποιήσετε διαφορετική σύνταξη για την ενεργοποίηση του εικονικού περιβάλλοντος, ανάλογα με το λειτουργικό σύστημα και το κέλυφος εντολών που χρησιμοποιείτε.

  • Σε Unix ή MacOS, χρησιμοποιώντας το κέλυφος bash: πηγή / διαδρομή / προς / venv / bin / ενεργοποίηση
  • Σε Unix ή MacOS, χρησιμοποιώντας το κέλυφος csh: πηγή /path/to/venv/bin/activate.csh
  • Σε Unix ή MacOS, χρησιμοποιώντας το κέλυφος ψαριού: πηγή /path/to/venv/bin/activate.fish
  • Στα Windows χρησιμοποιώντας τη γραμμή εντολών:path \ to \ venv \ Scripts \ activate.bat
  • Στα Windows χρησιμοποιώντας το PowerShell: διαδρομή \ προς \ venv \ Σενάρια \ Activate.ps1

Σημειώστε ότι το ενεργοποιημένο περιβάλλον λειτουργεί μόνο για το περιβάλλον στο οποίο ενεργοποιήθηκε. Για παράδειγμα, εάν εκκινήσετε δύο παρουσίες PowerShell, A και B και ενεργοποιήσετε μόνο το εικονικό περιβάλλον στην περίπτωση A, αυτό το περιβάλλον θα ισχύει μόνο για A. Δεν θα ισχύει οπουδήποτε αλλού.

Διαμορφώστε και χρησιμοποιήστε το εικονικό περιβάλλον

Μόλις ενεργοποιήσετε το νέο εικονικό περιβάλλον, μπορείτε να χρησιμοποιήσετε τη διαχείριση πακέτων pip για να προσθέσετε και να αλλάξετε πακέτα για αυτό. Θα βρείτε pip στο Σενάρια υποκατάλογος του εικονικού περιβάλλοντος στα Windows και στο αποθήκη υποκατάλογος σε λειτουργικά συστήματα Unix.

Εάν είστε ήδη εξοικειωμένοι με τον τρόπο λειτουργίας του pip, είστε έτοιμοι. Θα πρέπει να είναι το ίδιο σε ένα εικονικό περιβάλλον. Απλώς βεβαιωθείτε ότι χρησιμοποιείτε την παρουσία pip που διαχειρίζεται πακέτα για το εικονικό περιβάλλον στο πλαίσιο όπου ενεργοποιήθηκε - π.χ., η συνεδρία bash ή η περίοδος λειτουργίας CLI / PowerShell των Windows. Εάν θέλετε να επαληθεύσετε ότι χρησιμοποιείτε το σωστό pip και το σωστό εικονικό περιβάλλον, πληκτρολογήστε pip -V και βεβαιωθείτε ότι η διαδρομή που εμφανίζει δείχνει έναν υποκατάλογο του εικονικού σας περιβάλλοντος.

Για να χρησιμοποιήσετε το εικονικό περιβάλλον που δημιουργήσατε για να εκτελέσετε σενάρια Python, απλώς καλέστε το Python από τη γραμμή εντολών στο πλαίσιο όπου το ενεργοποιήσατε.

Απενεργοποίηση του εικονικού περιβάλλοντος

Όταν τελειώσετε τη χρήση του εικονικού περιβάλλοντος, μπορείτε απλώς να τερματίσετε τη συνεδρία στην οποία τη χρησιμοποιούσατε. Εάν θέλετε να συνεχίσετε να εργάζεστε στο περιβάλλον αλλά με τον προεπιλεγμένο διερμηνέα Python, πληκτρολογήστε απενεργοποίηση στην προτροπή. Οι χρήστες των Windows στη γραμμή εντολών πρέπει να εκτελεστούν deactivate.bat από το Σενάρια υποκατάλογος, αλλά οι χρήστες Unix και χρήστες Windows που εκτελούν PowerShell μπορούν απλά να πληκτρολογήσουν απενεργοποίηση σε οποιονδήποτε κατάλογο.

Κατάργηση του εικονικού περιβάλλοντος

Τα εικονικά περιβάλλοντα είναι αυτόνομα. Όταν δεν χρειάζεστε πλέον το εικονικό περιβάλλον, μπορείτε απλώς να διαγράψετε τον κατάλογό του.

Εικονικά περιβάλλοντα στο Python 2

Με το Python 2, τα εικονικά περιβάλλοντα δεν αποτελούν εγγενή λειτουργία της γλώσσας. Αντ 'αυτού, πρέπει να εγκαταστήσετε βιβλιοθήκες τρίτων για να δημιουργήσετε και να διαχειριστείτε εικονικά περιβάλλοντα.

Το πιο δημοφιλές και ευρέως χρησιμοποιούμενο από αυτά τα έργα είναι το virtualenv, το οποίο χειρίζεται τη δημιουργία της δομής καταλόγου και την αντιγραφή των απαραίτητων αρχείων σε ένα εικονικό περιβάλλον. Για να εγκαταστήσετε το virtualenv, απλώς χρησιμοποιήστε το εγκατάσταση pip virtualenv. Για να δημιουργήσετε έναν κατάλογο εικονικού περιβάλλοντος, πληκτρολογήστε virtualenv / διαδρομή / προς / κατάλογο. Η ενεργοποίηση και απενεργοποίηση του εικονικού περιβάλλοντος λειτουργεί με τον ίδιο τρόπο όπως και για εικονικά περιβάλλοντα στο Python 3 (βλ. Παραπάνω).

Χρήση εικονικών περιβαλλόντων με φορητούς υπολογιστές Jupyter

Εάν χρησιμοποιείτε σημειωματάρια Jupyter (γνωστά και ως σημειωματάρια IPython) και έχετε ήδη εγκαταστήσει το Jupyter σε όλο το σύστημα, δημιουργήστε το εικονικό σας περιβάλλον και ενεργοποιήστε το. Στη συνέχεια, από τον κατάλογο εικονικού περιβάλλοντος, εκτελέστε εγκατάσταση pip ipykernel για να προσθέσετε τα απαραίτητα στοιχεία για το IPython. Τέλος, τρέξτε εγκατάσταση πυρήνα ipython —user —name =, όπου το project_name είναι ένα όνομα που θέλετε να συσχετίσετε με το συγκεκριμένο έργο. Από εκεί θα πρέπει να μπορείτε να ξεκινήσετε το Jupyter και να μεταβείτε στον πυρήνα IPython που εγκαταστήσατε μέσα στο εικονικό περιβάλλον.