Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι

ΘΕΜΑ: Περί python bytecode

Περί python bytecode 7 Χρόνια 3 Μήνες πριν #4642

  • thprch
  • Το Άβαταρ του/της thprch
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 36
Γεια χαρά

Γιατί να υπάρχει bytecode......γιατί να μην είναι ένας απλός interpreter από source σε γλώσσα μηχανής ;;;

Θέλω να μάθω γιατί το σύστημα της γλώσσας python χρησιμοποιεί compiler για μεταγλώττιση σε bytecode και interpreter για διερμήνευση του bytecode σε γλώσσα μηχανής ;;;

Επίσης πάντα γίνεται διερμήνευση του bytecode στην python η λειτουργεί και ως κλασικός interpreter διερμηνεύοντας εντολή εντολή σε κώδικα μηχανής όπως οι παλιοί κλασικοί interpreters (basic κλπ);;;

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


ευχαριστώ!!!
The best programming language is the one that gives you the most money
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Περί python bytecode 7 Χρόνια 3 Μήνες πριν #4644

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
Στο βιβλίο του Mark Lutz Learning Python 5 Edition
όλο το κεφάλαιο 2 μιλάει γιαυτό το θέμα.

Δεν εξηγεί τόσο το γιατί όσο το τι συμβαίνει όταν εκτελείται ένα πρόγραμμα python.

Με λίγα λόγια κάθε φορά που τρέχουμε ένα πρόγραμμα παράγεται ένα bytecode για όσα αρχεία μας δεν υπάρχει ήδη αυτό και το bytocode εκτελείται από την python virtual machine.

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

Το πάντα που ρωτάς, ναι πάντα ο πηγαίος κώδικας .py δεν είναι άμεσα εκτελέσιμος πρώτα γίνεται .pyc και μετά εκτελείται.
Το .pyc εκτελείται και χωρίς .py Εάν δηλαδή σβήσεις το αρχείο σου .py και εκτελέσεις το .pyc εκτελείται κανονικά.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Περί python bytecode 7 Χρόνια 3 Μήνες πριν #4647

  • thprch
  • Το Άβαταρ του/της thprch
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 36
Το παντα διερμηνευει bytecode.....ειναι μονο για το shell που μοιαζει να εκτελει εντολη εντολη σαν απλος κλασικος interpreter

Το θεμα ειναι οτι δεν αποθηκευει pyc αρχεια στο δισκο εαν δεν το ζητησουμε εμεις βαζοντας διακοπτη -m python -m file.py

παιρνει δηλαδη το file.py και ο compiler το κανει file.pyc και ο interpreter το διερμηνευει και τρεχει και ολα αυτα στη μνημη.....οταν κλεισεις τον υπολογιστη θελει παλι compile το py αρχειο

το pyc οντως τρεχει και χωρις το py αλλα μονο στον υπολογιστη που δημιουργηθηκε δεν τρεχει σε αλλη αρχιτεκτονικη και ουτε καν σε αλλη εκδοση της python.....η φορητοτητα ειναι μονο για py files

H JAVA το καταφερνει αυτο.....να τρεχουν τα αρχεια bytecode σε αλλες αρχιτεκτονικες αλλα εκει υπαρχει jre
The best programming language is the one that gives you the most money
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Περί python bytecode 7 Χρόνια 3 Μήνες πριν #4648

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
Τα συμπεράσματα που έχεις βγάλει είναι λάθος

Το θεμα ειναι οτι δεν αποθηκευει pyc αρχεια στο δισκο εαν δεν το ζητησουμε εμεις βαζοντας διακοπτη -m python -m file.py
παιρνει δηλαδη το file.py και ο compiler το κανει file.pyc και ο interpreter το διερμηνευει και τρεχει και ολα αυτα στη μνημη.....οταν κλεισεις τον υπολογιστη θελει παλι compile το py αρχειο

Λάθος

Εφόσον το .pyc δεν είναι ορατό είναι μέσα στο φάκελο __pycache__. In 3.2 and later, Python instead saves its .pyc byte code files in a subdirectory named __pycache__.

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


το pyc οντως τρεχει και χωρις το py αλλα μονο στον υπολογιστη που δημιουργηθηκε δεν τρεχει σε αλλη αρχιτεκτονικη και ουτε καν σε αλλη εκδοση της python.....η φορητοτητα ειναι μονο για py files

Λάθος
Internally, and almost completely hidden from you, when you execute a program Python first compiles your source code (the statements in your file) into a format known as byte code. Compilation is simply a translation step, and byte code is a lower-level, platform-independent representation of your source code.
Python saves byte code like this as a startup speed optimization. The next time you run your program, Python will load the .pyc files and skip the compilation step, as long as you haven’t changed your source code since the byte code was last saved, and aren’t running with a different Python than the one that created the byte code.

Αυτό σημαίνει ότι αυτό που την ενδιαφέρει είναι να μην έχεις αλλάξει το source ή την έκδοση της python. Η αρχιτεκτονική του υπολογιστή και το λειτουργικό δεν έχει σημασία τα αναλαμβάνει το python virtual machine που είναι εγκατεστημένο σε κάθε υπολόγιστή.

Τα αποσπάσματα στα αγγλικά είναι από το βιβλίο που σου είπα.
Τελευταία διόρθωση: 7 Χρόνια 3 Μήνες πριν από Theo.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Περί python bytecode 7 Χρόνια 3 Μήνες πριν #4650

  • thprch
  • Το Άβαταρ του/της thprch
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 36
;
The best programming language is the one that gives you the most money
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Περί python bytecode 7 Χρόνια 3 Μήνες πριν #4651

  • thprch
  • Το Άβαταρ του/της thprch
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 36
Αυτα που μου εβγαλες λαθος ειναι σωστα..........δοκιμαστικαν.......τα συμπερασματα μου ειναι σωστα.......αν θες να συνεχισουμε την συζητηση και να σου το αποδειξω παει καλως..........
The best programming language is the one that gives you the most money
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Περί python bytecode 7 Χρόνια 3 Μήνες πριν #4652

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
Δεν έχει σημασία που το δοκίμασες και δεν δούλεψε αυτό συμβαίνει και σε εμένα συνέχεια :laugh: Τελικά πάντα αποδυκνυέται ότι κάπου εμείς κάνουμε λάθος και όχι τα βιβλία η το documentation.

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

2. Compile It (Maybe)
After finding a source code file that matches an import statement by traversing the
module search path, Python next compiles it to byte code, if necessary. We discussed
byte code briefly in Chapter 2, but it’s a bit richer than explained there. During an
import operation Python checks both file modification times and the byte code’s Python
version number to decide how to proceed. The former uses file “timestamps,” and the
latter uses either a “magic” number embedded in the byte code or a filename, depending
on the Python release being used. This step chooses an action as follows:
Compile
If the byte code file is older than the source file (i.e., if you’ve changed the source)
or was created by a different Python version, Python automatically regenerates the
byte code when the program is run.
As discussed ahead, this model is modified somewhat in Python 3.2 and later—
byte code files are segregated in a __pycache__ subdirectory and named with their
Python version to avoid contention and recompiles when multiple Pythons are
installed. This obviates the need to check version numbers in the byte code, but
the timestamp check is still used to detect changes in the source.
Don’t compile
If, on the other hand, Python finds a .pyc byte code file that is not older than the
corresponding .py source file and was created by the same Python version, it skips
the source-to-byte-code compile step.
In addition, if Python finds only a byte code file on the search path and no source,
it simply loads the byte code directly; this means you can ship a program as just
byte code files and avoid sending source. In other words, the compile step is bypassed
if possible to speed program startup.

Notice that compilation happens when a file is being imported. Because of this, you
will not usually see a .pyc byte code file for the top-level file of your program, unless it
is also imported elsewhere—only imported files leave behind .pyc files on your machine.
The byte code of top-level files is used internally and discarded; byte code of
imported files is saved in files to speed future imports.
Top-level files are often designed to be executed directly and not imported at all.
Later,
we’ll see that it is possible to design a file that serves both as the top-level code of a
program and as a module of tools to be imported. Such a file may be both executed
and imported, and thus does generate a .pyc. To learn how this works, watch for the
discussion of the special __name__ attribute and __main__ in Chapter 25.
Τελευταία διόρθωση: 7 Χρόνια 3 Μήνες πριν από Theo.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Περί python bytecode 7 Χρόνια 3 Μήνες πριν #4654

  • thprch
  • Το Άβαταρ του/της thprch
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 36
Δημιουργησα πολλα αρχεια file.py τα αποθηκευσα και τα ετρεξα στο cmd των windows μα σε κανενα δεν αποθηκευτικε αυτοματα αρχειο pyc στο δισκο.
Μονο εγω manual δημιουργησα αποθηκευμενο pyc για οποιοδηποτε py
Ουτε φακελος __pycache__ δεν προυπηρχε......δημιουργηθηκε με τη πρωτο αρχειο py που εγω εκανα pyc
Φυσικα και τρεχει το pyc χωρις να υπαρχει το py……οταν εχεις δημιουργησει pyc manual
Δεν ξερω αν γινεται κατι λαθος απο το συστημα της python αλλα αυτο που φαινεται ειναι
Οτι κανει compile το py σε pyc παντα και μετα τρεχει ο interpreter το pyc (bytecode) χωρις να αποθηκευει pyc στο δισκο.............ολα στον αερα και ολα στη μνημη
Εφαρμοσα καθε δυνατοτητα αναζητησης και εμφανισα κρυφα αρχεια αρχεια συστηματος τα παντα.......αλλα pyc πουθενα.....pyc μονο manual εμφανιζεται αποθηκευμενο
Οσο για το αν τρεχει pyc σε αλλη αρχιτεκτονικη (os –cpu) εκανα δοκιμη μεταφερωντας pyc αρχεια στο linux και δεν τα ετρεχε ενω τα py τα ετρεχε.......εβγαζε μηνυμα περι magic number………ισως να μην πειραζε η αρχιτεκτονικη αλλα η εκδοση της python που στο Ubuntu 16.04 ειναι διαφορετικη απο των windows 8.1 pro
Εγω αναζητω απαντησεις απο ατομα που ξερουν ακριβως το πως και τι .......αρθρα οδηγους κλπ διαβασα πολλα στο internet και δεν δινω και τοσο βαση.........να μας πει καποιος αναλυτικα κατανοητα και αξιοπιστα το πως και τι στην python
The best programming language is the one that gives you the most money
Τελευταία διόρθωση: 7 Χρόνια 3 Μήνες πριν από thprch.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Περί python bytecode 7 Χρόνια 3 Μήνες πριν #4655

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
thprch έγραψε:
Εγω αναζητω απαντησεις απο ατομα που ξερουν ακριβως το πως και τι .......αρθρα οδηγους κλπ διαβασα πολλα στο internet και δεν δινω και τοσο βαση.........να μας πει καποιος αναλυτικα κατανοητα και αξιοπιστα το πως και τι στην python

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

Εγώ έχω την υπομόνη να σου εξηγήσω λοιπόν γιατί αντιλαμβάνομαι ότι κάπου δυσκολέυεσαι

Στο κομμάτι λοιπόν που έχω bold και underlined λέει, Because of this, you
will not usually see a .pyc byte code file for the top-level file of your program, ..
Στο εξηγώ με ένα παράδειγμα το οποίο αποτελείται από 2 αρχεία source (ή 100 δεν έχει σημασία)
Αυτά τα αρχεία κάπως επικοινωνούν μεταξύ τους. Αυτό γίνεται με το import.

file1.py
import math
 
def embado_kiklou(aktina):
  return math.pi*aktina**2 

file2.py
import file1
 
aktina, ipsos=input('Δώσε την ακτίνα και το ύψος του κύλίνδρου :').split()
print('O όγκος του κυλίνδρου είναι : {ogkos}'.format (ogkos=file1.embado_kiklou(float(aktina))*float(ipsos)))


Πήγαινε στο shell σου και εκτέλεσε το file2
python file2.py
Πήγαινε στο φάκελλο που έχεις τα αρχεία και κοίταξε το φάκελλο _pycache__ θα δεις μέσα το file1....pyc
Το αρχείο file2.py είναι αυτό που λέει ο ποιητής top file και δεν δημιουργείται το .pyc

Αν έχεις 20 αρχεία προφανώς κάπου κάπως το ένα γίνεται import στο άλλο και στο _pycache_
θα βρεις 19 .pyc (πλην του top file)

Για το άλλο που λες ότι δεν εκτελείται σε άλλους υπολόγιστες διάβασε ξανά τις προυπόθεσεις

Τα άτομα λοιπόν που "ξέρουν" και ψάχνεις δεν θα σου πουν τίποτα παραπάνω από αυτά που λέει το documentation ή ένα καλό βιβλίο.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Περί python bytecode 7 Χρόνια 3 Μήνες πριν #4657

  • thprch
  • Το Άβαταρ του/της thprch
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 36
Εφαρμοσα το παραδειγμα που μου εδωσες και οντως δημιουργησε pyc του πρωτου αρχειου στο __pycache__
Συμπερασμα........μονο αν εχω δυο αρχεια που συνεργαζονται θα δω pyc στο δισκο....και μαλιστα pyc του ενος απο τα δυο
Αν φτιαξω ενα αρχειο απλο......print(“δοκιμαστικο”) και αποθηκευσω filedok.py…..και τρεξω στο shell…….python filedok.py…….δεν θα δω pyc στο δισκο διοτι θα εχει συνχωνευτει σε καποιο αλλο αγνωστου ταυτοτητος;;;;;;;;………η δεν θα εχει δημιουργηθει καθολου pyc;;;;;;;;
Αυτο το κομματι ειναι το δυσνοητο.....τι γινεται με ενα ανεξαρτητο αρχειο που δεν καλει καποιο αλλο......αν αποθηκευει pyc …..που δεν αποθηκευει.....η αν τρεχει απλα στη μνημη το pyc……η αν συνχωνευει το δικο του bytecode σε καποιο αλλο bytecode;;;;;;;

Σου ειναι τοσο δυσκολο να πεις τι κανει με το θεμα pyc ;;;;; αν εχεις καταλαβει ολα αυτα που διαβαζεις και με παραπεμπεις να διαβασω κι εγω.........τοτε μπορεις να πεις ανετα....ναι κανει αυτο η δεν το κανει........
Εγω pyc σε ανεξαρτητο αρχειο δεν βρισκω πουθενα αποθηκευμενο.....μονο στο παραδειγμα σου δημιουργησε αυτοματα χωρις να βαλω το χερι μου...και αυτο γιατι συνεργαζονται τα αρχεια..........τα μεμονομενα με τι συνεργαζονται;;;;;;;;;

Σου τα λεω καλοπροαιρετα.......απλα θελω να καταλαβω........δεν μου αρεσει η ημιμαθεια και το περιπου ξερω..............η ξερω ακριβως η δεν ξερω τιποτα
The best programming language is the one that gives you the most money
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Περί python bytecode 7 Χρόνια 3 Μήνες πριν #4658

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
Δεν ξέρω αν διάβασες αυτά που σου έστειλα :(

Πάμε στις ερωτήσεις
Ερώτηση
Συμπερασμα........μονο αν εχω δυο αρχεια που συνεργαζονται θα δω pyc στο δισκο....και μαλιστα pyc του ενος απο τα δυο

Απάντηση
byte code of imported files is saved in files to speed future imports
Πρόσεξε ότι χρησιμοποιεί πλυθηντικό σημαίνει όλα τα imported και σε ένα πρόγραμμα όλα τα source γίνονται import, αλλιώς γιατί να υπάρχουν. Δεν χρειάζεται να γίνει το top level μόνο

Ερώτηση
Αν φτιαξω ενα αρχειο απλο......print(“δοκιμαστικο”) και αποθηκευσω filedok.py…..και τρεξω στο shell…….python filedok.py…….δεν θα δω pyc στο δισκο διοτι θα εχει συνχωνευτει σε καποιο αλλο αγνωστου ταυτοτητος;;;;;;;;………η δεν θα εχει δημιουργηθει καθολου pyc;;;;;;;;

Απάντηση
Top-level files are often designed to be executed directly and not imported at all.
The byte code of top-level files is used internally and discarded

Εξηγώ λίγο με δικά μου λόγια αν και νομίζω δεν χρειάζονται γιατί μπορεί να αλλιώσουν αυτά που ξεκάθαρα για μένα λέει το αγγλικό κείμενο.

Έχεις ένα πρόγραμμα με 10 αρχεία source. Ένα από αυτά είναι top, αυτό που θα εκτελέσεις το προγραμμα.
python top_file.py
Όταν εκτελέσεις το top file η python θα ψάξει για όλα τα imported files μάλλον τα άλλα 9 δηλαδή, να βρεί τα αντίστοιχα .pyc Εάν δεν τα βρεί ή συντρέχουν λόγοι που σου έγραψα στο αγγλικό κείμενο θα τα δημιουργήσει
Αν τα βρεί και δεν συντρέχουν οι λόγοι απλά θα τα εκτελέσει και δεν θα κάνει compile στο source.

Όταν έχεις 1 αρχείο πρόγραμμα ταυτόχρονα είναι και top file οπότε δεν αποθήκευται byte code
Δημιουργείται στη μνήμη και σβήνεται μόνο του.

Τα παραπάνω σε συνδυασμό με το γεγονός ότι έχεις τη δυνατότητα να δημιουργήσεις byte code για το top level και ότι δεν υπάρχουν προγράμματα με 1 file (νομίζω ότι είναι πολύ σπάνιο εκτός και μιλάμε για πρόγραμμα 50-100 γραμμές) πιστεύω ότι καλύπτουν κάπως τις ερώτησείς σου.

Ερώτηση
Σου ειναι τοσο δυσκολο να πεις τι κανει με το θεμα pyc ;;;;; αν εχεις καταλαβει ολα αυτα που διαβαζεις και με παραπεμπεις να διαβασω κι εγω.........τοτε μπορεις να πεις ανετα....ναι κανει αυτο η δεν το κανει........

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

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

Σου τα λεω καλοπροαιρετα.......απλα θελω να καταλαβω........δεν μου αρεσει η ημιμαθεια και το περιπου ξερω..............η ξερω ακριβως η δεν ξερω τιποτα

Σου τα λεω καλοπροαιρετα..... μάθε μόνο πράγματα που σε ενδιαφέρουν μην προσπαθείς να μάθεις και να καταλάβεις τα πάντα σε βάθος, 1ο δεν χρειάζεται 2ο δεν είναι δυνατό να γίνει :)
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Περί python bytecode 7 Χρόνια 3 Μήνες πριν #4660

  • thprch
  • Το Άβαταρ του/της thprch
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 36
Αν ειχες γραψει αυτη την ολοκληρωμενη τελια απαντηση αμεσως μετα την πρωτη μου ερωτηση......θα ειχαμε γλιτωσει 9 ενδιαμεσα βηματα.......ετσι πρεπει να λειτουργει ο σωστος coder......αλλα θα εχανε το forum ετσι.....θα ειχε μικρη κινηση αναρτησεων....υποθετω επραξες για το καλο του python.org.gr......πλακα κανω.....με καλυψες πληρως
The best programming language is the one that gives you the most money
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Περί python bytecode 7 Χρόνια 3 Μήνες πριν #4661

  • thprch
  • Το Άβαταρ του/της thprch
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 36



η παραπανω εικονα λεει με τη μια την τελευταια σου απαντηση αλλα ανοιξε νεα θεματα οπως μια αναλυση
του jit και pypy
The best programming language is the one that gives you the most money
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Περί python bytecode 7 Χρόνια 3 Μήνες πριν #4662

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
thprch έγραψε:
Αν ειχες γραψει αυτη την ολοκληρωμενη τελια απαντηση αμεσως μετα την πρωτη μου ερωτηση......θα ειχαμε γλιτωσει 9 ενδιαμεσα βηματα.......ετσι πρεπει να λειτουργει ο σωστος coder......αλλα θα εχανε το forum ετσι.....θα ειχε μικρη κινηση αναρτησεων....υποθετω επραξες για το καλο του python.org.gr......πλακα κανω.....με καλυψες πληρως

Αν είχες διαβάσει τη σελίδα που σου έστειλα ..... :laugh:

Ναι για το python.org.gr το έκανα, όπως βλέπω το θέμα αυτό έχει 151 προβολές οι 70 περίπου είναι δικές μου οι 70 δικές σου και 11 ακόμα. Ούτε 16 για να κατεβάσουμε ομάδα δεν κάνουμε. Μόνο για 5χ5 και αύτό με το ζόρι.

Το ερώτημα με το αν το .pyc τρέχει σε άλλες πλατφόρμες το άπάντησες;

Οσο για το αν τρεχει pyc σε αλλη αρχιτεκτονικη (os –cpu) εκανα δοκιμη μεταφερωντας pyc αρχεια στο linux και δεν τα ετρεχε ενω τα py τα ετρεχε.......εβγαζε μηνυμα περι magic number………ισως να μην πειραζε η αρχιτεκτονικη αλλα η εκδοση της python που στο Ubuntu 16.04 ειναι διαφορετικη απο των windows 8.1 pro

During an
import operation Python checks both file modification times and the byte code’s Python
version number to decide how to proceed. The former uses file “timestamps,” and the
latter uses either a “magic” number embedded in the byte code or a filename, depending on the Python release being used.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.524 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου