Αν ξέρεις fortran, το f2py είναι καλό και σχετικά απλό. Ιδίως αν το bottleneck είναι μία ή δύο συναρτήσεις (με loops γιατί αυτά είναι αργά στην python). Επίσης, αν και δεν το έχω δοκιμάσει πρέπει να βολεύει για να χρησιμοποιήσεις legacy fortran code. Από πλευράς development νομίζω ότι είναι σχετικά παρατημένο.
Τουλάχιστον όσον αφορά τον αριθμό των project που τη χρησιμοποιούν, η Cython σήμερα είναι η κυρίαρχη επιλογή. Αναπτύσσεται ενεργά και μπορεί να χρησιμοποιηθεί πάντα. Στην πραγματικότητα είναι μία ξεχωριστή γλώσσα από την Python. Ένα υπερσύνολο της python για την ακρίβεια, στο οποίο μπορείς να δηλώσεις τύπους μεταβλητών, ώστε να μπορεί να κάνει ο compiler optimizations. Το κακό είναι ότι έτσι, ο κώδικας δεν είναι συμβατός με την Python, οπότε αν χρησιμοποιείς την Python για το development του αλγόριθμου, πρέπει ότι αλλαγές κάνεις να τις περνάς και στα δύο codebases. Αν τη χρησιμοποιείς μόνο για τα bottlenecks της εφαρμογής (όπως είναι και το σωστό) δεν είναι ιδιαίτερο πρόβλημα.
Υπάρχει και το λεγόμενο "pure python mode" το οποίο είναι εξαιρετικά βολικό γιατί σου επιτρέπει να μην πειράξεις καθόλου τον κώδικα σου (οπότε τρέχει κανονικά με απλή python). Δηλώνεις μόνο τα headers των συναρτήσεων σου και τους τύπους των μεταβλητών τους σε ένα ξεχωριστό αρχείο. Τουλάχιστον μέχρι τα Χριστούγεννα περίπου που το είχα τσεκάρει τελευταία φορά, είχε κάποιες περιορισμούς το mode αυτό αλλά στις συνήθεις περιπτώσεις ήταν οκ.
O Nuitka είναι πιο καινούριος και πιο φιλόδοξος από τα άλλα. Στοχεύει σε 100% compatibility με τον κώδικα της python κάτι το οποίο σε μεγάλο βαθμό το έχει επιτύχει. Αναπτύσσεται ενεργά, αλλά ακόμα "στήνεται" η υποδομή και δεν εχει δωθεί έμφαση στην ταχύτητα. Αν πετύχει τους στόχους, του θα είναι υπέροχο
Απαραίτητο σε όλα αυτά είναι να υπάρχουν tests γιατί υπάρχει περίπτωση ο compiled κώδικας να μη δίνει ακριβώς τα ίδια αποτελέσματα με τον κώδικα της "καθαρής" python. Την είχα πατήσει μια φορά με ένα unsigned int στη cython




