Τα πάντα για την Python

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Τα πάντα για την Python

Δημοσίευσηαπό pmav99 » 03 Αύγ 2011, 12:17

Τι εννοείς πως θα το ανοίξεις?
Κώδικας: Επιλογή όλων

with open('/etc/hosts', 'r+') as f:
print(f.read())


Για να μη σου πετάξει IOError όταν θα πάει να το ανοίξει, θα πρέπει να τρέξεις το script με sudo ή με root account.
Αν googl-άρεις, πιστεύω ότι θα βρεις τρόπο να αποκτάς root privileges μέσα από την python αλλά νομίζω είναι πιο απλό να το τρέχεις εσύ με sudo. Εξαρτάται φυσικά από το τι θες να κάνεις και από το ποιος θα χρησιμοποιεί το script.

Για την αντικατάσταση, αυτό που θα σου δώσει τη μεγαλύτερη ευελιξία είναι το module re (HOWTO)
pmav99
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 574
Εγγραφή: 05 Ιούλ 2008, 14:29
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Qdata » 03 Αύγ 2011, 12:29

@migf1 @pmanv99 Σας ευχαριστώ πολύ!Το βρήκα τελικά! :)
Linux User: #530165
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Ubuntu 11.04 32bit σε Intel(R) Atom(TM) CPU N270 @ 1.60GHz
(Notebook) Προδιαγραφές ⇛ 2x Intel(R) Atom(TM) CPU N270 @ 1.60GHz │ 1016MB │ HDA-Intel - HDA Intel -- USB-Audio - USB AUDIO│ 1024x600 pixels
Νέος στο Linux?Οδηγοί - How to - Tutorials
Qdata
powerTUX
powerTUX
 
Δημοσιεύσεις: 1875
Εγγραφή: 18 Ιουν 2010, 19:40
Τοποθεσία: Σέρρες
IRC: dimos
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Ilias95 » 12 Αύγ 2011, 13:44

sv1jsb έγραψε:Για να χρησιμοποιήσεις το pygtk στο Gnome 3 (ή καλύτερα με το GTK3) πρέπει να κάνεις import το παρακάτω:
from gi.repository import Gtk

Υπάρχουν ορισμένες αλλαγές αλλά τα βασίκοτερα είναι τα ίδια με τις παλαιότερες εκδόσεις.
Ακόμα η τεκμηρίωση είναι πολύ φτωχή, τόσο για python όσο και για C (η πιο καλή είναι για την vala).
Το σπουδαιότερο είναι ότι πρέπει να το χρησιμοποιείς έτσι:
md=Gtk.MessageDialog(.....)
και όχι
md=gtk.MessageDialog(....)
To πρώτο G έχει γίνει κεφαλαίο.
Περισσότερες πληροφορίες θα βρεις εδώ:
http://live.gnome.org/PyGObject
http://live.gnome.org/PyGObject/IntrospectionPorting
http://developer.gnome.org/gtk3/stable/index.html

Θα σου πρότεινα όμως να κάνεις εγκατάσταση (σαν VM?) ένα λειτουργικό που είναι ήδη στημένο με Gnome 3, όπως Fedora 15. Στα natty θα δυσκολευτείς να το στήσεις σωστά με αμφίβολα αποτελέσματα αν δεν έχεις καλή πείρα σε linux.
Σε fedora 15 χωρίς να πειράξω τίποτα, εγκατέστησα μόνο ότι είχε το repository της fedora σχετικά με την python, μου δούλεψαν χωρίς πρόβλημα python gtk2 και gtk3 προγράμματα.


Καλησπέρα, με καθυστέρηση η απάντηση...

Πρώτα να πω ότι το "from gi.repository import Gtk", πάλι δεν δουλεύει για python3, αλλά μόνο για python2.
Θέλω να σε ρωτήσω όμως. Αφού όπως λες η τεκμηρίωση είναι πολύ φτωχή (και το 'χω διαβάσει και αλλού αυτό) και υπάρχουν τέτοια διάφορα μικροπροβληματάκια, καθώς και η μεταφορά σε Windows δεν είναι πλήρης (που όπως και να το κάνουμε είναι και αυτό αρνητικό), ενώ αντίθετα το qt τρέχει και σε python3 και μπορεί να τρέξει κανονικά και σε περιβάλλον gnome, γιατί θεωρείς το gtk "καλύτερο" (αν το θεωρείς βεβαίως - δεδομένου και ότι έχεις γράψει και έναν χρήσιμο οδηγό για τον glade) και ποια είναι τα πλεονεκτήματα που θα έχω αν το χρησιμοποιήσω σε σχέση με το qt;
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Ilias95 » 12 Αύγ 2011, 16:18

pmav99 έγραψε:νομίζω ότι το pygtk δεν έχει γίνει ακόμη port σε python3. Εναλλακτικά θα σου πρότεινα να χρησιμοποιήσεις pyqt. Τρέχει και σε python2 και python3 και προσωπικά νομίζω ότι είναι η καλύτερη βιβλιοθήκη για δημιουργία GUI.


Πως θα το κάνω import σε python3;
Έχω εγκαταστήσει PyQt4 αλλά ενώ σε python2 είναι οκ, όταν πάω να κάνω import σε python3 μου βγάζει ImportError.
Ούτε μέσω google βρήκα κάποια λύση, ενώ επίσης όλα τα tutorials για pyqt που βρήκα είναι για python2.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό sv1jsb » 12 Αύγ 2011, 21:04

Ilias95 έγραψε:
Πρώτα να πω ότι το "from gi.repository import Gtk", πάλι δεν δουλεύει για python3, αλλά μόνο για python2.

Ilias95 έγραψε:Πως θα το κάνω import σε python3;
Έχω εγκαταστήσει PyQt4 αλλά ενώ σε python2 είναι οκ, όταν πάω να κάνω import σε python3 μου βγάζει ImportError.
Ούτε μέσω google βρήκα κάποια λύση, ενώ επίσης όλα τα tutorials για pyqt που βρήκα είναι για python2.

Γι' αυτό ακόμα η python3 δεν έχει, ακόμα, μεγάλη απήχηση στο κοινό. Ορισμένες πολύ χρήσιμες βιβλιοθήκες δεν είναι διαθέσιμες γι' αυτήν.
Όπως και μεγάλα frameworks (Django, Pylons, Twisted κλπ) χρησιμοποιούν ακόμα 2, και από ότι φαίνεται για αρκετό καιρό ακόμα.

Σε καμία περίπτωση δεν θεωρώ ότι το gtk είναι "καλύτερο" από το Qt. Οπτικά είναι σίγουρα πιο όμορφο το Qt.
Δεν γνωρίζω από πλευρά σταθερότητας και ταχύτητας πιο κερδίζει.
Αφού είναι για εκπαιδευτικούς σκοπούς δεν έχει σημασία ποιο θα χρησιμοποιήσεις, απλώς θεωρώ ότι αν δεν υπάρχει κανένας άλλος λόγος, καλό είναι να ξεκινά κάποιος από αυτό που του δίνει το σύστημα του. Και μετά προχωράς.
Όπως το Qt τρέχει σε gnome έτσι και το gtk τρέχει σε KDE, δεν σημαίνει τίποτα αυτό, αρκεί να έχεις της βιβλιοθήκες.
Όσον αφορά στα windows δεν γνωρίζω τι τρέχει και τι όχι.
Programming blog
Γνώσεις ⇛ Linux: Καλά ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Ubuntu 10.04 64bit
Προδιαγραφές ⇛ Phenom II │ 8GB │ 2xATI 5670 │ HD Audio │ TFT 23"
Άβαταρ μέλους
sv1jsb
babeTUX
babeTUX
 
Δημοσιεύσεις: 88
Εγγραφή: 01 Ιουν 2011, 23:50
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Ilias95 » 12 Αύγ 2011, 21:50

Πάντως είναι λιγάκι ενοχλητικό αυτό. Το 2008 βγήκε η python3 αν δεν κάνω λάθος και κοντεύουμε 2012. Πότε δηλαδή περιμένουν να γίνει το port;
Είναι μεγάλο μπέρδεμα. Δηλαδή ντε και καλά να μάθουμε python2 ενώ η python3 υπάρχει 3,5 - 4 χρόνια;
Κι εμένα δεν με ενδιαφέρει καθόλου αν θα χρησιμοποιήσω qt ή gtk. Θέλω απλώς να δημιουργήσω γραφικές εφαρμογές.
Αναμένω απάντηση του pmav για το αν γνωρίζει με ποιον τρόπο θα χρησιμοποιήσω pyqt με python3.
Αλλιώς τι; Θα πρέπει να μάθω την 2η έκδοση για να δημιουργήσω γραφικό περιβάλλον; Χαζομάρα τους...
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό pmav99 » 12 Αύγ 2011, 22:05

Ilias95 έγραψε:Πως θα το κάνω import σε python3;
Έχω εγκαταστήσει PyQt4 αλλά ενώ σε python2 είναι οκ, όταν πάω να κάνω import σε python3 μου βγάζει ImportError.
Ούτε μέσω google βρήκα κάποια λύση, ενώ επίσης όλα τα tutorials για pyqt που βρήκα είναι για python2.


Θα πρέπει να εγκαταστήσεις την PyQt4 για Python3. Πιθανόν να μην υπάρχει στα repos του Ubuntu, αλλά Let me google that for you :P :P :D

Οι διαφορές μεταξύ Python2 και Python3 είναι μικρές. Στην πλειοψηφία των περιπτώσεων ο κώδικας θα θέλει από καθόλου ως ελάχιστες τροποποιήσεις. Υπάρχει και το 2to3 αν κάποιο script είναι ιδιαίτερα μεγάλο.

Για GUI οι επιλογές σου είναι βασικά 4. Tkinter, wxPython, PyQt/PySide, PyGTK. Το Tkinter το αφήνω στην άκρη λόγω έλλειψης δυνατοτήτων (αν και για απλά πράγματα είναι αξιοπρεπέστατο). Μακράν το περισσότερο υλικό θα το βρεις για wxPython. Η PyQt έχει πολύ πιο ωραίο API, αλλά η έλλειψη LGPL έχει κρατήσει τον κόσμο μακρυά και για αυτό δε βρίσκεις τόσο πολύ υλικό όσο για την wxPython (blogs κτλ). Ότι και να χρησιμοποιήσεις τη δουλειά σου τελικά θα την κάνεις όπως και αν έχει. Πληροφορίες για PyQt δες εδώ και εδώ

Ψέμματα. Υπάρχει και 5η επιλογή. Τα Traits, αλλά είναι άλλη ιστορία. Αν έχεις χρόνο και όρεξη ρίξε μια ματιά σε αυτό το tutorial. Πριν κανά χρόνο που το είχα δοκιμάσει, δεν έπαιζαν με το Py2exe, οπότε αν θες να δημιουργήσεις exe για να το μοιράσεις σε windows, τσέκαρε το αν γίνεται πριν αφιερώσεις χρόνο.

Σχετικά με τις 2 εκδόσεις, είναι σχεδόν σίγουρο ότι οι εκδόσεις 2 και 3 θα συνυπάρχουν για πολλά χρόνια, νομίζω όμως ότι τελικά το Unicode θα οδηγήσει τους πάντες στην Python3 (ότι καινούριο βγαίνει τουλάχιστον).

edit
Μαζί γράφαμε.
Σχετικά με το τελευταίο post σου. Νομίζω ότι η διάκριση που κάνεις μεταξύ python2 και python3 είναι λίγο υπερβολική. Με τα from __future__ imports (ιδίως division, print_function, unicode_literals) και με λίγη μελέτη σε αυτό, μπορείς να γράψεις κώδικα που θα τρέχει και στις 2 εκδόσεις χωρίς πρόβλημα. Ακόμη και όταν δεν τρέχει (πχ στα exceptions, raise κτλ) οι αλλαγές είναι πραγματικά ασήμαντες.

Επίσης τα ports γίνονται όταν είναι έτοιμα. Πολλες από τις βιβλιοθήκες που υπάρχουν, είναι προϊόν εθελοντικής εργασίας. Αυτό σημαίνει ότι χρειάζεται χρόνος για τέτοιες μεγάλες αλλαγές. Οι devs δεν είναι πάντα πολλοί και μπορεί να μη θέλουν να ασχοληθούν με κάτι τέτοιο Η PyQt που μεταφέρθηκε, είναι προϊόν της RiverBank που είναι εμπορική εταιρεία.
pmav99
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 574
Εγγραφή: 05 Ιούλ 2008, 14:29
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Ilias95 » 12 Αύγ 2011, 22:38

Όσον αφορά την εγκατάσταση όπως έγραψα και προηγουμένως είχα ήδη κάνει την παραπάνω διαδικασία (και από το ίδιο site μάλιστα) και δεν δουλεύει!
Μου βγάζει importError. Ξαναδοκίμασα και έκανα compile δεύτερη φορά αλλά πάλι Error παίρνω, ενώ σε python2 είναι οκ... :wtf:
Τι στο καλό; Το μόνο που σκέφτομαι μήπως είναι λάθος είναι ότι στο compile δίνω python configure.py (όπως λέει στο README) και όχι python3 configure.py γιατί στο δεύτερο παίρνω σφάλμα. Δεν ξέρω αν παίζει ρόλο αυτό.

Σχετικά με τα ports νομίζω ότι θα πρεπε να το κυνηγήσουν λίγο περισσότερο οι "της python" ώστε να ολοκληρωθεί πιο γρήγορα η διαδικασία.
Και αν οι αλλαγές δεν είναι τόσο σημαντικές όπως λες τότε σημαίνει ότι είναι ακόμα πιο εύκολο.
Ντάξει δεν είμαι και ο πιο σχετικός και ίσως όντως να υπερβάλω, απλά κουράστηκα σε κάθε τι νέο που πάω να ψάξω σχετικά με την python να πρέπει να ψάχνω πόσες ώρες, πως στο καλό θα τρέξει στην 3η έκδοση (αν τρέξει).
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό pmav99 » 12 Αύγ 2011, 23:18

Ilias95 έγραψε:Μου βγάζει importError. Ξαναδοκίμασα και έκανα compile δεύτερη φορά αλλά πάλι Error παίρνω, ενώ σε python2 είναι οκ... :wtf:
Τι στο καλό; Το μόνο που σκέφτομαι μήπως είναι λάθος είναι ότι στο compile δίνω python configure.py (όπως λέει στο README) και όχι python3 configure.py γιατί στο δεύτερο παίρνω σφάλμα. Δεν ξέρω αν παίζει ρόλο αυτό.


Στο δεύτερο τι σφάλμα παίρνεις? Στη συνέχεια του ίδιου thread προτείνουν να εγκαταστήσεις τη dev έκδοση της Python. Δοκίμασε το.
pmav99
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 574
Εγγραφή: 05 Ιούλ 2008, 14:29
Εκτύπωση

Re: Τα πάντα για την Python

Δημοσίευσηαπό Ilias95 » 12 Αύγ 2011, 23:26

pmav99 έγραψε:Στο δεύτερο τι σφάλμα παίρνεις? Στη συνέχεια του ίδιου thread προτείνουν να εγκαταστήσεις τη dev έκδοση της Python. Δοκίμασε το.


Όντως η απάντηση ήταν 2 ποστ πιο κάτω...
Έδωσα: sudo apt-get install python3-dev
Ξαναέκανα τα compile και:
Thank you very much, it is this that I was missing.

Επιτέλους, δουλεύει! Hooray! :clap:
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι