Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

1. Εισαγωγή στον προγραμματισμό

ΤΜΧΠΠΑ-ΠΘ

Ενότητες του μαθήματος

Το μάθημα χωρίζεται στις ακόλουθες ενότητες:

1. Εισαγωγή στον προγραμματισμό

Κατά την διάρκεια της διάλεξης διευκρινίζεται ο σκοπός του μαθήματος και περιγράφονται συνοπτικά οι ενότητες που θα διδαχθούν οι φοιτητές κατά την διάρκεια του εξαμήνου. Διατυπώνονται συγκεκριμένοι ορισμοί που αφορούν τον προγραμματισμό Η/Υ και αναπτύσσονται έννοιες για την επιστήμη των υπολογιστών. Στην συνέχεια εγκαθίσταται στους υπολογιστές των φοιτητών η γλώσσα προγραμματισμού Python μαζί με το απαραίτητο λογισμικό για την συγγραφή και αποσφαλμάτωση του κώδικα. Τέλος αποσαφηνίζονται τα εικονικά περιβάλλοντα (virtual enviroments) και οι διαχειριστές πακέτων (package managers) στην Python.

Ακολουθεί εξοικείωση με το περιβάλλον εργασίας.

2. Τιμές, τύποι δεδομένων και μεταβλητές. Συμβολοσειρές

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

3. Λίστες, εκφράσεις, τελεστές

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

4. Πλειάδες και λεξικά

Εισαγωγή στις πλειάδες και τα λεξικά.

5. Έλεγχος ροής εκτέλεσης

Η λογική Boolean, Εκτέλεση υπό συνθήκη, αλυσιδωτές και εμφωλευμένες συνθήκες, βρόχος και οι εντολές επανάληψης for και while.

6. Συναρτήσεις

Ορισμός και κλήση συνάρτησης, παράμετροι συναρτήσεων, εμβέλεια μεταβλητών, αναδρομή.

7. Ανάγνωση & εγγραφή αρχείων, διαχείριση καταλόγων

Ανάγνωση και εγγραφή σε αρχείο, σειριοποίηση (serialization) αντικειµένου, διαχείριση φακέλων και αρχείων.

8. Ανάγνωση αρχείων csv, η βιβλιοθήκη pandas

Ανάγνωση αρχείων csv ή excel, pandas dataframes

9. Γεωεπεξεργασία διανυσματικών δεδομένων

Η βιβλιοθήκη Shapely και geopandas, ανάγνωση και εγγραφή διανυσματικών δεδομένων, μετα-δεδομένα, φιλτράρισμα, αλλαγή προβολικού συστήματος. Χωρικές σχέσεις, στατιστικά ομαδοποιήσεων, οπτικοποίηση διανυσματικών δεδομένων.

10. Διαγράμματα

Διαγράμματα με την βιβλιοθήκη seaborn.

11. Η βιβλιοθήκη numpy

Επεξεργασία πολυδιάστατων πινάκων με την βιβλιοθήκη numpy

12. Γεωεπεξεργασία ψηφιδωτών δεδομένων (Η βιβλιοθήκη rasterio)

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

13. Άσκηση επεξεργασίας και ανάλυσης γεωχωρικών δεδομένων

Εφαρμογή της Python στην γεωεπεξεργασία και χωρικής ανάλυση με μελέτη περίπτωσης την πυρκαγιά στο Μάτι Αττικής.

Ορισμοί

Για παράδειγμα η αύξουσα (ή φθίνουσα) ταξινόμηση μιας λίστας αριθμών είναι ένα χαρακτηριστικό παράδειγμα αλγορίθμου. Οπότε με τιμές εισόδου {31, 41, 59, 26, 41, 58}, ο αλγόριθμος ταξινόμησης επιστρέφει ως τιμές εξόδου {26, 31, 41, 41, 58, 59}.

Ο προγραμματισμός είναι μια διαδικασία που απαιτεί μια σειρά εργαλείων και διαδικασιών τα οποία συνήθως ενσωματώνονται όλα μαζί σε ένα ενοποιημένο περιβάλλον που αποκαλείται “ολοκληρωμένο περιβάλλον ανάπτυξης εφαρμογών” (Integrated Development Environment, IDE).

Η διαδικασία μετατροπής του πηγαίου κώδικα σε εκτελέσιμο αρχείο περιγράφεται στο παρακάτω διάγραμμα:

Η ροή εκτέλεσης του κώδικα σε εκτελέσιμο.

Figure 1:Η ροή εκτέλεσης του κώδικα σε εκτελέσιμο.

Τα εργαλεία προγραμματισμού τα οποία κάνουν την μεταγλωττιστή του πηγαίου προγράμματος σε εκτελέσιμο πρόγραμμα είναι τα εξής:

Τα λάθη στον κώδικα συνοψίζονται σε τρείς βασικές κατηγορίες:

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

Το παρακάτω είναι ένα παράδειγμα συντακτικού σφάλματος και το μήνυμα που επιστρέφει ο μεταγλωττιστής της Python. Η αιτία του σφάλματος είναι η ξεχασμένη παρένθεση στην συνάρτηση (function) print

print("an example"
  Cell In[1], line 1
    print("an example"
                      ^
SyntaxError: incomplete input
  1. σφάλμα εκτέλεσης (run-time errors) τα οποία συμβαίνουν κατά την εκτέλεση του προγράμματος παρότι δεν υπάρχουν σφάλματα σύνταξης. Χαρακτηριστικά παραδείγματα τέτοιων λαθών είναι η διαίρεση με το μηδέν, η πρόσβαση σε ένα στοιχείο μιας λίστας εκτός του εύρους της, η ανάγνωση ενός αρχείου το οποίο δεν υπάρχει, ή η πρόσβαση σε ένα ανύπαρκτο object. Τα σφάλματα εκτέλεσης έχουν επικρατήσει να αναφέρονται και ως “bugs” [1]. Παρακάτω δίνεται ένα σφάλμα που προκύπτει από την διαίρεση ενός ακέραιου με το μηδέν.

1/0
---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
Cell In[2], line 1
----> 1 1/0

ZeroDivisionError: division by zero
  1. σφάλμα λογικής, κατά το οποίο το πρόγραμμα εκτελείται κανονικά χωρίς σφάλματα αλλά δεν συμπεριφέρεται όπως έχει σχεδιαστεί να συμπεριφέρεται. Αυτά τα σφάλματα δεν σταματούν την εκτέλεση του προγράμματος αλλά το αποτέλεσμα της εκτέλεσης δεν ειναι το αναμενόμενο.

x = 6
y = 4

z = x+y/2
print('Ο μέσος όρος των δύο αριθμών είναι:',z)
Ο μέσος όρος των δύο αριθμών είναι: 8.0

Το παραπάνω είναι σφάλμα λογικής γιατί έπρεπε να γραφτεί ως εξής (δώστε προσοχή στις παρενθέσεις που δίνουν προτεραιότητα στις πράξεις):

x = 6
y = 4

z = (x+y)/2
print('Ο μέσος όρος των δύο αριθμών είναι:',z)
Ο μέσος όρος των δύο αριθμών είναι: 5.0

Όλες οι παραπάνω μορφές σφαλμάτων εντοπίζονται μέσω της αποσφαλμάτωσης, της συστηματικής δηλαδή διαδικασίας εντοπισμού και επιδιόρθωσης σφαλμάτων. Η αποσφαλμάτωση συνοψίζεται στα εξής βήματα:

Οι εντολές των προγραμμάτων γράφονται από τους προγραμματιστές σε τεχνητές γλώσσες που ονομάζονται “γλώσσες προγραμματισμού”. Μια γλώσσα προγραμματισμού θα πρέπει να έχει αυστηρά ορισμένη σύνταξη και σημασιολογία. Η σύνταξη καθορίζει αν μια σειρά από σύμβολα αποτελούν «νόμιμες» εντολές ενός προγράμματος γραμμένου σε μια συγκεκριμένη γλώσσα προγραμματισμού και η σημασιολογία καθορίζει τη σημασία του προγράμματος, δηλαδή τις υπολογιστικές διαδικασίες που υλοποιεί. Aγγελιδάκης (2015).

H γλώσσα προγραμματισμού Python

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

Ο interpreter της Python κάνει τα εξής βασικά βήματα:

Βήμα 1: Parsing (Ανάλυση)

Βήμα 2: Compilation σε bytecode

Βήμα 3: Εκτέλεση από την Python Virtual Machine (PVM)

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

Η Python δημιουργήθηκε από τον Guido van Rossum και πρωτοκυκλοφόρησε στις 20 Φεβρουαρίου του 1991. Το όνομά της, αν και παρεπέμπει, δεν έχει σχέση με το φίδι Πύθωνα αλλά προέρχεται από την γνωστή κωμικη σειρά του BBC, Monty Python’s Flying Circus. Αν και αρχικά αναπτύχθηκε σαν μεμονωμένη ατομική προσπάθεια στην συνέχεια υποστηρίχθηκε από μια παγκόσμια κοινότητα προγραμματιστών και χρηστών. Στις 6 Μαρτίου 2001 ιδρύθηκε το αμερικάνικο μη κερδοσκοπικό ίδρυμα Python Software Foundation (PSF), το οποίο στόχο έχει την διάδοση και υποστήριξη της Python μέσω της διοργάνωσης συνεδρίων, την ανάπτυξη κοινοτήτων χρηστών, την υποστήριξη προσπαθειών μέσω υποτροφιών και την διασφάλιση οικονομικών πόρων για την ανάπτυξη της γλώσσας. Το ίδρυμα κατέχει τα πνευματικά δικαιώματα της γλώσσας και διασφαλίζει ότι αυτή θα διατίθεται με όρους ελεύθερου λογισμικού προς το ευρύτερο κοινό.

Οι βασικοί στόχοι που έθεσε ο δημιουργός κατά την ανάπτυξή της είναι να είναι εύκολη και κατανοητή με ισχυρές δυνατότητες εφάμιλλες των ανταγωνιστικών γλωσσών. Ταυτόχρονα έθεσε το όρο να είναι ανοιχτού κώδικα (open source) για να μπορεί εύκολα να αναπτύσσεται απο τους ενδιαφερόμενους προγραμματιστες και να έχει πρακτική αξία σε καθημερινές εργασίες ρουτίνας. Την τρέχουσα περίοδο (10/2025) κατατάσσεται ως η κορυφαία γλώσσα προγραμματισμού σύμφωνα με την κοινότητα προγραμματιστών TIOBE αλλά και τον δείκτη PopularitY of Programming Language Index (PYPL).

Η κατάταξη σύμφωνα με την κοινότητα TIOBE (02/2023)

Figure 2:Η κατάταξη σύμφωνα με την κοινότητα TIOBE (02/2023)

Η Python πλέον είναι μια ώριμη γλώσσα προγραμματισμού με εφαρμογές στην ανάπτυξη διαδικτυακών εφαρμογών και υπηρεσιών, την εκπαίδευση, την ανάλυση δεδομένων, την τηλεπισκόπηση και τα ΣΓΠ, την δημιουργία γραφικών, την διαχείριση συστημάτων, τα παιχνίδια, το εμπόριο και την επιχειρηματικότητα, τους μικροελεγκτές και το Internet of Things (IOT).

Η φιλοσοφία της Python ως προς την μεθοδολογία ανάπτυξης και προγραμματισμού συνοψίζεται σε 20 αρχές, οι οποίες εκτυπώνονται μέσω της γλώσσας με την παρακάτω εντολή:

import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

Περιβάλλον ανάπτυξης κώδικα

Αρχικά, για εκπαιδευτικούς λόγους ο χρήστης μπορεί χρησιμοποιήσει το ολοκληρωμένο περιβάλλον ανάπτυξης (Integrated Development Environment, IDE) thonny. Δεν απαιτείται η προεγκατάσταση της Python καθώς το thonny έρχεται με ενσωματωμένη την γλώσσα προγραμματισμού Python και διατίθεται για Windows, Mac και Linux. Το thonny αποτελεί εκπαιδευτικό περιβάλλον για την συγγραφή και αποσφαλμάτωση κώδικα Python. Για τον λόγο αυτό διαθέτει πολύ συγκεκριμένες αλλά ζωτικές λειτουργίες και δεν είναι επιφορτισμένο με δυνατότητες που απαιτούνται από προχωρημένους προγραμματιστές. Το Γραφικό Περιβάλλον Χρήστη (GUI, Graphical User Interface) είναι λιτό ώστε να μην αποπροσανατολίζει τον αρχάριο χρήστη. Το thonny παρέχει βοηθητικές λειτουργίες για τον χρήστη όπως είναι η σήμανση συντακτικών λαθών, η αυτόματη συμπλήρωση κώδικα και η ευκολία στην επέκταση των λειτουργίων της Python με την εγκατάσταση συμπληρωματικών πακέτων.

Ωστόσο, πιο διαδεδομένo περιβάλλον εργασίας για την Python, ιδίως για την ανάλυση δεδομένων, είναι το Jupyter Lab το οποίο μάλιστα προσφέρεται και σε παραμετροποιημένη μορφή από την Google στο Google Colab. Άλλα περιβάλλοντα ανάπτυξης κώδικα είναι το Visual Studio Code, το Pycharm και το Spyder

Στους χρήστες παρέχεται online το περιεχόμενο του τρέχοντος μαθήματος σε μορφή notebooks του Jupyter Lab (περισσότερα στο https://kokkytos.github.io/programming).

Το περιβάλλον εργασία thonny.

Figure 3:Το περιβάλλον εργασία thonny.

Εκτέλεση εντολών στο περιβάλλον thonny

Στην παρακάτω ενότητα παρουσιάζονται μερικά εισαγωγικά παραδείγματα από εντολές της Python. Δεν θα επικεντρωθούμε σε λεπτομέρειες ούτε θα αναλύσουμε τις εντολές που διατυπώνονται στα αρχεία. Παρουσιάζονται σαν μια μορφή συνοπτικής επίδειξης των δυνατοτήτων που διαθέτει η γλώσσα και θα περιγράψουμε σε επόμενα μαθήματα.

Δοκιμάστε να τρέξετε την παρακάτω εντολή στην γραμμή εντολών της Python στο thonny:

25+30
55

Τι παρατηρείτε; Η Python λειτούργησε σαν μια απλή αριθμομηχανή.

Στην συνέχεια δοκιμάστε να τρέξετε την παρακάτω εντολή γραμμή προς γραμμή:

number1 = 25
number2 = 30
number3 = number1+number2
number3
55

Το αποτέλεσμα είναι το ίδιο με το προηγούμενο.

Δώστε την παρακάτω εντολή. Αντικαταστήστε την συμβολοσειρά AnyName με το ονομά σας.

name="AnyName"

for i in range(10):
    print("Εκτύπωση", i,":",  name)
Εκτύπωση 0 : AnyName
Εκτύπωση 1 : AnyName
Εκτύπωση 2 : AnyName
Εκτύπωση 3 : AnyName
Εκτύπωση 4 : AnyName
Εκτύπωση 5 : AnyName
Εκτύπωση 6 : AnyName
Εκτύπωση 7 : AnyName
Εκτύπωση 8 : AnyName
Εκτύπωση 9 : AnyName

Όπως βλέπετε η Python επανέλαβε την εκτύπωση του ονόματός σας 10 φορές. Από που ξεκινά όμως η αρίθμηση της πρώτης εκτύπωσης;

Στο επόμενο παράδειγμα η Python θα σας ενημερώσει αν τρέχετε γρήγορα ή αργά ή αν είστε ακίνητος:

speed=70

if speed>50:
    if speed>=100:
        print("Τρέχεις πολύ γρήγορα")
    else:
        print("Τρέχεις γρήγορα")
else:
    if speed==0:
        print("Είσαι ακίνητος".upper())
    if speed>0:
        print("Τρέχεις αργά")
Τρέχεις γρήγορα

Έστω ότι κινείσθε σε αυτοκινητόδρομο με 120 km/h. Αν ορίσετε την ταχύτητα (speed) στον κώδικα, τι θα σας απαντήσει η Python; Αν κινείστε με μηδενική ταχύτητα (speed=0) τι μήνυμα θα λάβετε; Υπάρχουν περιπτώσεις που η Python, και δικαιολογημένα, αγνοεί να απαντήσει με μήνυμα στην ταχύτητα που ορίζεται. Μπορείτε να εντοπίσετε σε ποιές περιπτώσεις;

Python virtual enviroments και package managers

Η Python προσφέρει την δυνατότητα δημιουργίας εικονικών περιβαλλόντων (virtual enviroments) δηλαδή απομονωμένα περιβάλλοντα στα οποία τα επιμέρους πακέτα/βιβλιοθήκες ή ακόμα και εκδόσεις της Python λειτουργούν ανεξάρτητα το ένα από το άλλο. Αυτό είναι ιδιαίτερα σημαντικό όταν ο προγραμματιστής εργάζεται σε διαφορετικά έργα με διαφορετικές ανάγκες ως προς τις εκδόσεις των βιβλιοθηκών. Με αυτόν το τρόπο εξασφαλίζεται η αυτονομία και η αποφυγή conflicts ανάμεσα στα επιμέρους εικονικά περιβάλλοντα. Κατά συνέπεια αλλαγές στις βιβλιοθήκες ενός έργου δεν επηρεάζουν την λειτουργικότητα ενός άλλου. Επιπλέον, εξασφαλίζεται η αναπαραγωγιμότητα ενός περιβάλλοντος και μιας έρευνας με εύκολο τρόπο. Κάποια από τα εργαλέια διαχείρισης εικονικών περιβαλλόντων λειτουργούν παράλληλα και ως εργαλεία για την διαχείριση πακέτων και βιβλιοθηκών. Οι διαχειριστές αυτοί (package managers) δίνουν την δυνατότητα στον χρήστη για την εγκατάσταση/απεγκατάσταση και επίλυση εξαρτήσεων επιμέρους πακέτων λογισμικού.

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

Τα πιο διαδεδομένα είναι τα εξής:

Ενδεικτικά παραδείγματα χρήσης

Στα παρακάτω παραδείγματα επιδεικνύονται οι δυνατότητες διαχείρισης εικονικών περιβαλλόντων και πακέτων.

venv και pip

Στόχος είναι να δημιουργήσουμε ένα εικονικό περιβάλλον με τον venv και να εγκαταστήσουμε ενδεικτικά κάποια πακέτα με το pip.

Και τα δύο εργαλεία έρχονται προεγκατεστημένα με την Python.

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

Από την γραμμή εντολών (command line) και εφόσον βρισκόμαστε στον κατάλληλο κατάλογο (directory) που θέλουμε δίνουμε την παρακάτω εντολή για να δημιουργήσουμε το εικονικό περιβάλλον με το όνομα test_env:

python -m venv test_env

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

Στην συνέχεια ενεργοποιούμε το εικονικό περιβάλλον με τις παρακάτω εντολές οι οποίες διαφοροποιούνται ανάλογα το λειτουργικό.

Για τα windows δίνουμε σε απλό Command Prompt:

test_env\Scripts\activate

ή σε PowerShell:

test_env\Scripts\Activate.ps1

Ενώ για τα Linux:

source test_env/bin/activate

Όταν γίνει η ενεργοποίηση θα δείτε να αναγράφεται το test_env στο command line όπως στην παρακάτω περίπτωση:

Πλέον το περιβάλλον είναι ενεργό και ο χρήστης μπορεί να εγκαταστήσει τα πακέτα που επιθυμεί με την χρήση του διαχειριστή πακέτων pip. Για να εγκαταστήσει για παράδειγμα τα πακέτα pandas και shapely μπορεί να εκτελέσει την παρακάτω εντολή:

pip install pandas shapely

Κατά την εγκατάσταση ο διαχειριστής πακέτων θα αναλάβει να εγκαταστήσει και επιπλέον πακέτα τα οποία είναι απαραίτητα για την λειτουργία των pandas και shapely (dependency management).

Για να επιβεβαιώσει ο χρήστης ότι τα πακέτα έχουν εγκατασταθεί μπορεί να ξεκινήσει την python στην γραμμή εντολών:

python

Αφού ξεκινήσει η python, μέσα από το command prompt της ο χρήστης μπορεί να δώσει την παρακάτω εντολή:

import pandas
import shapely

Αν δεν λάβει κάποιο μήνυμα σφάλματος η διαδικασία έχει ολοκληρωθεί επιτυχώς.

Tip: Σε περίπτωση που ο χρήστης κρίνει απαραίτητο να εξάγει σε ενα αρχείο (πχ requirements.txt) μια λίστα με τα πακέτα που εγκατέστησε μπορεί να το κάνει με την εντολή:

pip freeze > requirements.txt

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

pip install -r requirements.txt

conda

Παράλληλα με την χρήση του venv και pip ο χρήστης έχει την επιλογή να χρησιμοποιήσει το conda για την δημιουργία εικονικών περιβαλλόντων και την εγκατάσταση πακέτων. To conda δεν έρχεται προεγκατεστημένο με την Python και ο χρήστης πρέπει να ανατρέξει στον σχετικό ιστότοπο για να το εγκαταστήσει. Εναλλακτικά μπορεί να εγκαταστήσει το miniconda σαν μια πιο ελαφριά και μινιμαλιστική εκδοχή της conda με παραπλήσιες ωστόσο δυνατότητες.

Για την δημιουργία ενός εικονικού περιβάλλοντος με το όνομα my_env ο χρήστης καλεί την εντολή:

conda create -n my_env

ή αν ο χρήστης θέλει να εγκαταστήσει διαφορετική έκδοση της python (πχ την έκδοση 3.9 της python) από την προκαθορισμένη μπορεί να το ορίσει ως εξής:

conda create -n my_env python=3.9

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

conda info --envs

Σε αυτή την περίπτωση θα πρέπει να αναγράφεται και το νέο περιβάλλον my_env.

Για την ενεργοποίηση του νέου περιβάλλοντος ( my_env) ο χρήστης δίνει την εντολή σε command line:

conda activate my_env

Αφού το νέο περιβάλλον έχει ενεργοποιηθεί ο χρήστης μπορεί να εγκαταστήσει τα πακέτα που επιθυμεί, στο παραδειγμά μας τo pandas καιτo shapely.

conda install pandas shapely

Τέλος αφού ολοκληρωθεί η εγκατάσταση μέσα από την Python μπορεί να κάνει import αυτά τα πακέτα για να διαπιστώσει ότι είναι λειτουργικά:

import pandas
import shapely

Αξίζει να σημειωθεί ότι η conda λαμβάνει τα πακέτα της από διάφορα αποθετήρια κώδικα που ονομάζονται channels. Το προκαθορισμένο και επίσημο channel λήψης πακέτων στην conda είναι το defaults. Επιπλέον εξαιρετικά διαδεδομένο είναι το conda-forge το οποίο έχει δημιουργηθεί από την κοινότητα χρηστών και θεωρείται ότι διαθέτει μεγαλύτερη γκάμα και πιο επικαιροποιημένα πακέτα. Αυτά τα κανάλια έχουν σειρά προτεραιότητας όταν ο χρήστης ζητάει να εγκαταστήσει κάποιο πακέτο.

Αν θέλουμε ρητά να επιβάλλουμε την εγκατάσταση ενός πακέτου από συγκεκριμένο κανάλι μπορούμε να το κάνουμε κατά την σύνταξη της εντολής εγκατάστασης ως εξής:

 conda install conda-forge::pandas

Η συγκεκριμένη εντολή θα εγκαταστήσει την pandas από το channel conda-forge.

Footnotes
  1. Η πρώτη περίπτωση bug σε υπολογιστή καταγράφεται το 1947 από τον Grace Murray Hopper και πρόκειται για την κυριολεκτική έννοια του όρου. Στο ημερολόγιό του καταγράφει προβλήματα στην λειτουργία του υπολογιστή του Harvard, Mark II, από την ύπαρξη ενός εντόμου στο εσωτερικό του κύκλωμα.

References
  1. Aγγελιδάκης, Ν. (2015). Εισαγωγή στον προγραμματισμό με την Python. Αγγελιδάκης.
  2. Cormen, T. (Ed.). (2009). Introduction to algorithms (3rd ed). MIT Press.