Χρήσιμα εργαλεία που μπορούν να σε βοηθήσουν να αναπτύσσεις κώδικα Python για το Exercism στον δικό σου υπολογιστή.
Αυτή είναι μια συλλογή εργαλείων που είναι δημοφιλή στην κοινότητά μας. Δεν έχει σκοπό να είναι δεσμευτική ούτε εξαντλητική. Πιστεύουμε ότι αυτά τα εργαλεία κάνουν καλά τη δουλειά τους, αλλά σίγουρα υπάρχουν και άλλα που είναι εξίσου καλά. Αν έχεις να προτείνεις κάποιον επεξεργαστή, IDE, εργαλείο ή πρόσθετο, σε ενθαρρύνουμε να το προσθέσεις σε αυτό το έγγραφο στο GitHub.
Πριν ξεκινήσεις να εξερευνάς, βεβαιώσου ότι έχεις εγκαταστήσει μια πρόσφατη έκδοση της Python.
Η διαδικτυακή πλατφόρμα του Exercism υποστηρίζει αυτή τη στιγμή Python 3.10 - 3.13.5 (ασκήσεις και τεστ) και Python 3.13.5 (εργαλεία).
Ο διαδικτυακός μας test runner χρησιμοποιεί αυτή τη στιγμή pytest 8.4.0 και pytest-subtests 0.14.2.
Ο διαδικτυακός μας analyzer χρησιμοποιεί pylint 4.0.4.
Αν χρησιμοποιήσεις διαφορετικές εκδόσεις των Python, pytest ή pylint τοπικά, μπορεί να πάρεις διαφορετικά αποτελέσματα από ό,τι στην ιστοσελίδα.
Για περισσότερες πληροφορίες, δες το Installing Python locally.
Τα εικονικά περιβάλλοντα της Python προσφέρουν ελαφριά απομόνωση χρόνου εκτέλεσης και πακέτων. Μπορούν να σε βοηθήσουν να οργανώσεις τα έργα σου, κρατώντας τα πακέτα Python που εγκαθιστάς συγκεντρωμένα μέσα σε έναν συγκεκριμένο κατάλογο περιβάλλοντος. Διαφορετικά περιβάλλοντα μπορούν να περιέχουν διαφορετικές εκδόσεις του χρόνου εκτέλεσης της Python μαζί με τις εξαρτήσεις κάποιου έργου ή βιβλιοθήκης. Αυτό βοηθά να αποφύγεις bugs και ασυμβατότητες που προκαλούνται όταν αναβαθμίζεις μια βιβλιοθήκη για ένα έργο και αυτό "σπάει" μια εξάρτηση σε ένα άλλο.
Υπάρχουν πολλά εργαλεία εικονικών περιβαλλόντων και παρόμοια με εικονικά περιβάλλοντα σε χρήση σήμερα, καθώς και ένα αυξανόμενο κίνημα που προτιμά τα inline script metadata, τα dev containers ή το docker αντί για εικονικά περιβάλλοντα. Είναι σημαντικό να δοκιμάσεις διαφορετικές στρατηγικές και να βρεις αυτή που ταιριάζει στο στυλ ανάπτυξης και στις ανάγκες του έργου σου. Μην υποθέσεις ότι οι στρατηγικές εδώ ταιριάζουν σε όλους ή ότι είναι οι μόνες επιλογές σου. Για μια πιο γενική επισκόπηση εργαλείων που δεν καλύπτονται εδώ, ρίξε μια ματιά σε αυτή την ανάρτηση ιστολογίου του Bas Nijholt και μείνε περίεργος.
Υπάρχουν τρία βασικά εργαλεία εικονικών περιβαλλόντων που θα καλύψουμε εδώ: η venv της βασικής βιβλιοθήκης της Python, το conda env τρίτου κατασκευαστή, που χρησιμοποιεί τον διαχειριστή πακέτων conda και (συνήθως) τη διανομή Anaconda της Python, και το uv, ο αντικαταστάτης των pip + venv τρίτου κατασκευαστή.
Και τα τρία είναι αρκετά απλά στη χρήση ή/και την εγκατάσταση.
Επιπλέον, τα PyEnv, Poetry και virtualenvwrapper είναι εργαλεία που μπορούν να σε βοηθήσουν να διαχειρίζεσαι πολλαπλές εκδόσεις της Python και πολλαπλά περιβάλλοντα Python στον ίδιο υπολογιστή.
venv
Για να δημιουργήσεις ένα εικονικό περιβάλλον με τη venv, κάνε cd στον κατάλογο όπου θέλεις να αποθηκεύεις τα περιβάλλοντά σου.
Αυτός θα πρέπει να είναι ένας κατάλογος ξεχωριστός από τον κώδικα του έργου σου και ένας που δεν θα προσθέσεις στον έλεγχο εκδόσεων.
Στη συνέχεια, τρέξε την εντολή venv με το όνομα του φακέλου όπου θέλεις να αποθηκεύσεις αυτό το συγκεκριμένο περιβάλλον.
Η συνηθισμένη σύμβαση είναι να ονομάζεις αυτόν τον φάκελο <project-name-here>_venv:
Windows
PS C:\Users\foobar> py -m venv {name_of_virtualenv}
Για να ενεργοποιήσεις το εικονικό περιβάλλον, τρέξε την παρακάτω εντολή:
PS> .\{name_of_virtual_env}\Scripts\activate.bat
(venv) PS> _
Linux/MacOS
$ python3 -m venv {name_of_virtualenv}
created virtual environment ... in 8568ms
Για να ενεργοποιήσεις το εικονικό περιβάλλον, τρέξε την παρακάτω εντολή:
$ source {name_of_virtual_env}/bin/activate
(venv) $ _
Μόλις ενεργοποιηθεί μια venv, μπορείς να τρέξεις εντολές pip για εγκατάσταση πακέτων "μέσα" στο περιβάλλον.
Τα εγκατεστημένα πακέτα θα συσχετιστούν με την έκδοση Python της venv και θα βρίσκονται μέσα στο {name_of_virtual_env}/Lib.
Η απενεργοποίηση ενός εικονικού περιβάλλοντος γίνεται καλώντας το σενάριο deactivate, που βρίσκεται στον ίδιο κατάλογο με το activate.
conda
Η τελευταία έκδοση της conda μπορεί να εγκατασταθεί μέσω του miniconda.
Αυτό το cheatsheet της conda είναι πολύ χρήσιμο, όπως και τα έγγραφα της conda.
Αρχικά δημιουργήθηκε ως διαχειριστής πακέτων Python για τη δημοφιλή Anaconda distribution της "επιστημονικής Python", αλλά αργότερα η conda γενικεύτηκε και επεκτάθηκε.
Τα περιβάλλοντα conda είναι παρόμοια με τις venv, με βασική διαφορά ότι η conda μπορεί να δημιουργήσει εικονικά περιβάλλοντα και να εγκαταστήσει πακέτα για πολλές άλλες γλώσσες προγραμματισμού εκτός από την Python.
Οι γλώσσες που υποστηρίζει η conda περιλαμβάνουν τις R, JavaScript, Ruby, Fortran, C/C++, Scala, Java και άλλες.
Για μια σύγκριση των εντολών της conda εναντίον της venv, δες την αναφορά εντολών της conda.
Για να δημιουργήσεις ένα περιβάλλον conda, πληκτρολόγησε τα παρακάτω, αντικαθιστώντας το {name of environment} με το όνομα που θέλεις και το python={version} με την έκδοση Python που θέλεις.
Μπορείς να προσθέσεις μετά όποια επιπλέον πακέτα θέλεις να εγκαταστήσεις μέσα στο περιβάλλον:
$ conda create --name {name of environment} python={version} "pytest>6.0" pylint
...
## Package Plan ##
environment location: /usr/local/anaconda3/envs/test_env
added / updated specs:
- pylint
- pytest[version='>6']
- python=3.10
The following packages will be downloaded:
package | build
---------------------------|-----------------
astroid-2.11.1 | py310h2ec42d9_0 364 KB conda-forge
dill-0.3.4 | pyhd8ed1ab_0 62 KB conda-forge
lazy-object-proxy-1.7.1 | py310he24745e_0 32 KB conda-forge
....
additional packages here
....
------------------------------------------------------------
Total: 21.8 MB
Proceed ([y]/n)? y
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate test_env
#
# To deactivate an active environment, use
#
# $ conda deactivate
Η δημιουργία ενός περιβάλλοντος conda στα Windows χρησιμοποιεί τις ίδιες γενικές εντολές με το Linux/MacOS.
Ωστόσο, συνιστάται να χρησιμοποιήσεις τα τερματικά cmd ή powershell της Anaconda αντί να προσθέσεις την conda στη διαδρομή σου:
(base) PS C:\Users\foobar> conda create --name {name_of_environment} python={version} "pytest>6" pylint
...
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: C:\ProgramData\Anaconda3\envs\test_env
added / updated specs:
- pylint
- pytest[version='>6']
- python=3.10
The following packages will be downloaded:
package | build
---------------------------|-----------------
astroid-2.11.1 | py310h5588dad_0 364 KB conda-forge
attrs-21.4.0 | pyhd8ed1ab_0 49 KB conda-forge
bzip2-1.0.8 | h8ffe710_4 149 KB conda-forge
...
additional packages here
...
------------------------------------------------------------
Total: 37.5 MB
Proceed ([y]/n)? y
...
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate test_env
#
# To deactivate an active environment, use
#
# $ conda deactivate
Εργασία σε έργα με το uv: uv
Το uv είναι ένα εργαλείο διαχείρισης πακέτων και έργων Python από την Astral, γραμμένο σε Rust.
Σχεδιάστηκε για να αντικαταστήσει τα pip, venv, poetry και άλλα εργαλεία συσκευασίας/διαχείρισης εξαρτήσεων της Python.
Σε αντίθεση με τη Conda ή τη Mamba, το uv είναι ειδικευμένο/προσαρμοσμένο μόνο στην Python.
Ωστόσο, το uv υποστηρίζει τη δημιουργία αρθρωμάτων επέκτασης της Python γραμμένων σε άλλες γλώσσες, όπως η Fortran.
Η Astral είναι επίσης η εταιρεία πίσω από το δημοφιλές linter Ruff και το TY, έναν στατικό ελεγκτή τύπων για τα type hints της Python, και τα δύο γραμμένα σε Rust.
Αντί να μπούμε σε λεπτομέρειες εδώ, η τεκμηρίωση του UV είναι η καλύτερη πηγή σου για εγκατάσταση και ρύθμιση.
Έγγραφα και υπόβαθρο: virtualenvwrapper.
Το πακέτο virtualenvwrapper λειτουργεί πάνω από τη venv για να διαχειρίζεται όλα τα εικονικά περιβάλλοντά σου σε ένα σημείο.
Μπορείς να δημιουργείς, να αντιγράφεις, να διαγράφεις και να εναλλάσσεσαι μεταξύ περιβαλλόντων με εντολές τύπου Linux, όπως lsvirtualenv (για να εμφανίσεις τα περιβάλλοντα) και mkvirtualenv (για να δημιουργήσεις ένα περιβάλλον).
Επιτρέπει επίσης να προσθέτεις επιπλέον εργαλεία διαχείρισης μέσω επεκτάσεων.
Μπορείς ακόμη και να δημιουργήσεις τις δικές σου επεκτάσεις για το εργαλείο, ακολουθώντας αυτό το σεμινάριο.
Το pyenv είναι το fork για Python των δημοφιλών εργαλείων rbenv/ruby-build, τροποποιημένο για την Python.
Είναι ουσιαστικά ένα σύνολο σεναρίων και shims που επιτρέπουν τον ορισμό εκδόσεων Python τόσο σε καθολικό επίπεδο όσο και σε επίπεδο χρήστη.
Προσπαθεί να ακολουθεί την παράδοση του Unix: ένα εργαλείο ενός σκοπού, διακριτικό, που κάνει καλά ένα πράγμα.
Το pyenv και τα έγγραφά του βρίσκονται στο GitHub.
Το Visual studio code (VS Code) είναι ένας δωρεάν επεξεργαστής κώδικα από τη Microsoft.
Περιλαμβάνει εξαιρετική υποστήριξη τόσο για εικονικά περιβάλλοντα/περιβάλλοντα conda όσο και για το docker (μέσω του πρόσθετου docker) και μπορεί να επεκταθεί με πολλά διαφορετικά πρόσθετα για τεστ, linting, μορφοποίηση και ανάπτυξη ιστού.
Αναγνωριστικό επέκτασης: ms-python.python

Η επέκταση Python της Microsoft είναι η επίσημη επέκταση Python της Microsoft για το VS Code και συνιστάται ανεπιφύλακτα. Έχει ένα ευρύ φάσμα δυνατοτήτων, όπως διαχείριση περιβαλλόντων, διαχείριση τεστ, linting και debugging. Από την τελευταία έκδοση και μετά, η εγκατάσταση της επέκτασης MS Python κατεβάζει επίσης το pylance (ένα δημοφιλές πακέτο για linting και επικύρωση κώδικα Python) και το jupyter (για εργασία με Jupyter Notebooks).
Το PyCharm είναι ένα IDE (Ολοκληρωμένο Περιβάλλον Ανάπτυξης) που έχει φτιάξει η JetBrains.
Είναι φτιαγμένο ειδικά για την Python και είναι δημοφιλές στους επαγγελματίες .
Όπως το VS Code, μπορεί να επεκταθεί με διάφορα επί πληρωμή και δωρεάν πρόσθετα, θέματα και μορφοποιητές.
Η επί πληρωμή έκδοση υποστηρίζει επίσης ανάπτυξη Django, ανάπτυξη με Docker και ενσωμάτωση βάσεων δεδομένων.
unittest, οπότε πρέπει να έχεις εγκαταστήσει το pytest στο περιβάλλον που χρησιμοποιείς με το pycharm (δες τα έγγραφα για τον interpreter και το περιβάλλον παραπάνω) και μετά να δείξεις στο pycharm πού βρίσκεται.coverage για το pytest θα χαλάσει τον debugger του pycharm.
Δες το run/debug configuration: pytest για περισσότερες πληροφορίες.Το Spyder είναι ένα δωρεάν IDE Python ανοιχτού κώδικα, cross-platform, φτιαγμένο για την επιστημονική κοινότητα. Συνήθως περιλαμβάνεται στη διανομή Anaconda της Python, αλλά μπορεί να εγκατασταθεί μόνο του και να χρησιμοποιηθεί με οποιαδήποτε έκδοση Python. Συνιστούμε μια αυτόνομη εγκατάσταση για μέγιστη ευελιξία και για να μην υπάρχουν συγκρούσεις πακέτων.
Το Spyder υποστηρίζει πλήρως περιβάλλοντα venv και conda.
Περιλαμβάνει ένα ενσωματωμένο διαδραστικό τερματικό IPython, έναν διαδραστικό debugger και πλούσια υποστήριξη για γραφήματα και εξερεύνηση δεδομένων μέσα στον επεξεργαστή.
Επιπλέον συμπλήρωση κώδικα και linting παρέχονται μέσω του kite.
Ενσωματώσεις με Jupyter Notebooks και εργαλεία για τεστ παρέχονται μέσω πρόσθετων που αναπτύσσει η κοινότητα.
Μπορείς επίσης να γράψεις δικά σου πρόσθετα, χρησιμοποιώντας το API του Spyder.
Συχνές ερωτήσεις του Spyder
Ρύθμιση εκδόσεων/εικονικών περιβαλλόντων Python στο Spyder
Ρύθμιση του Spyder για την εκτέλεση τεστ unittest και pytest μέσω του spyder unittest plugin
Επιπλέον πρόσθετα του spyder
Το Emacs είναι ένα δωρεάν, ανοιχτού κώδικα και εξαιρετικά προσαρμόσιμο πρόγραμμα επεξεργασίας κειμένου, γραμμένο σε Lisp. Ένας εξαιρετικός οδηγός εγκατάστασης και ρύθμισης είναι διαθέσιμος στο Real Python.
Το Vim είναι μια δωρεάν και "βελτιωμένη" έκδοση του τυπικού επεξεργαστή κειμένου vi του Unix.
Είναι διαθέσιμο σε μεγάλη ποικιλία λειτουργικών συστημάτων και εκδόσεων Linux/Unix.
Ένας εξαιρετικός οδηγός εγκατάστασης και ρύθμισης είναι διαθέσιμος στο Real Python, και βολικά cheat sheets υπάρχουν στα vimsheet, glump και rtorr.
Ακόμη κι αν αποφασίσεις ότι η επεξεργασία κώδικα Python στο vim δεν είναι για σένα, συνιστάται να εξοικειωθείς με ένα βασικό σύνολο εντολών.
Το vim ή το vi είναι συχνά ο "βασικός" ή "προεπιλεγμένος" επεξεργαστής κειμένου σε διανομές Linux και Unix και είναι ο προεπιλεγμένος επεξεργαστής για τα μηνύματα commit του git (μεταξύ άλλων) σε αυτά τα συστήματα.
Είναι πολύ πιθανό να βρεθείς σε ένα σύστημα *nix να χρειάζεται να επεξεργαστείς ένα αρχείο ρυθμίσεων με μόνο το vi διαθέσιμο, οπότε το να ξέρεις πώς να βγεις από το vim είναι (τουλάχιστον) καλή αυτοάμυνα.
Το Spacemacs (αποθετήριο στο github) είναι μια δωρεάν διανομή του Emacs, καθοδηγούμενη από την κοινότητα, που συνδυάζει λειτουργίες τόσο του Emacs όσο και του Vim.
Το Sublime text είναι ένας επί πληρωμή επεξεργαστής κειμένου για προγραμματισμό, από τη Sublime HQ Pty Ltd. Μοιάζει με το VS Code και το Atom, με πολλά πακέτα και πρόσθετα για προσαρμογή. Μπορείς επίσης να αναπτύξεις δικά σου πρόσθετα για τον επεξεργαστή, χρησιμοποιώντας Python.