Je viens de découvrir Python, car je développais en VB et je suis passé sous Linux, alors je voulais un langage simple
Le python m'a l'air simple, mais peut on compiler un fichier source en Python ?
Merci
Bonjour,
Je ne suis pas un expert mais regardes "py2exe" mais je ne suis pas certain qu'il fonctionne sous Linux.
Sébastien
Michel Claveau - abstraction méta-galactique non triviale en fuite perpétuelle.
Bonjour !
Mais pourquoi vouloir compiler. En faisant cela, on perd beaucoup des possibilités (aspect dynamique du langage, introspection, adaptabilité, déboguage pas-à-pas, etc.)
@-salutations -- Michel Claveau
Bonjour !
Mais pourquoi vouloir compiler. En faisant cela, on perd beaucoup des
possibilités (aspect dynamique du langage, introspection, adaptabilité,
déboguage pas-à-pas, etc.)
Mais pourquoi vouloir compiler. En faisant cela, on perd beaucoup des possibilités (aspect dynamique du langage, introspection, adaptabilité, déboguage pas-à-pas, etc.)
@-salutations -- Michel Claveau
Fred
On Sun, 29 Aug 2004 08:46:41 +0200, "Fuxy" wrote:
Le python m'a l'air simple, mais peut on compiler un fichier source en Python ?
Je n'ai pas les compétences techniques pour dire, mais j'ai cru comprendre que la productivité dont tu jouis en développant en Python (comme le non-typage des données) rend très difficile l'écriture d'un compilateur en code natif.
De tte façon, les parties critiques de Python sont en fait écrites en C. Il est donc préférable d'écrire ton programme entièrement en Python, et, si certaines parties se révelaient trop lentes, les isoler et les réécrire en C par exemple pour les compiler ds une DLL appelable de Python.
En revanche, si "compiler" signifie générer un package permettant de faire tourner ton programme sur une machine sans avoir à préinstaller Python et autres modules, regarde py2.exe.
http://starship.python.net/crew/theller/py2exe/
Fred.
On Sun, 29 Aug 2004 08:46:41 +0200, "Fuxy" <seuxf@wanadoo.fr> wrote:
Le python m'a l'air simple, mais peut on compiler un fichier source en
Python ?
Je n'ai pas les compétences techniques pour dire, mais j'ai cru
comprendre que la productivité dont tu jouis en développant en Python
(comme le non-typage des données) rend très difficile l'écriture d'un
compilateur en code natif.
De tte façon, les parties critiques de Python sont en fait écrites en
C. Il est donc préférable d'écrire ton programme entièrement en
Python, et, si certaines parties se révelaient trop lentes, les isoler
et les réécrire en C par exemple pour les compiler ds une DLL
appelable de Python.
En revanche, si "compiler" signifie générer un package permettant de
faire tourner ton programme sur une machine sans avoir à préinstaller
Python et autres modules, regarde py2.exe.
Le python m'a l'air simple, mais peut on compiler un fichier source en Python ?
Je n'ai pas les compétences techniques pour dire, mais j'ai cru comprendre que la productivité dont tu jouis en développant en Python (comme le non-typage des données) rend très difficile l'écriture d'un compilateur en code natif.
De tte façon, les parties critiques de Python sont en fait écrites en C. Il est donc préférable d'écrire ton programme entièrement en Python, et, si certaines parties se révelaient trop lentes, les isoler et les réécrire en C par exemple pour les compiler ds une DLL appelable de Python.
En revanche, si "compiler" signifie générer un package permettant de faire tourner ton programme sur une machine sans avoir à préinstaller Python et autres modules, regarde py2.exe.
http://starship.python.net/crew/theller/py2exe/
Fred.
bruno modulix
Le python m'a l'air simple, mais peut on compiler un fichier source en Python ?
Réponse simple : non. Python est interprété.
Non. Dans l'implémentation standard, les sources sont (automatiquement) compilées en byte-code avant exécution.
Le python m'a l'air simple, mais peut on compiler un fichier source en
Python ?
Réponse simple : non. Python est interprété.
Non. Dans l'implémentation standard, les sources sont (automatiquement)
compilées en byte-code avant exécution.
Le python m'a l'air simple, mais peut on compiler un fichier source en Python ?
Réponse simple : non. Python est interprété.
Non. Dans l'implémentation standard, les sources sont (automatiquement) compilées en byte-code avant exécution.
bruno modulix
On Sun, 29 Aug 2004 08:46:41 +0200, "Fuxy" wrote:
Le python m'a l'air simple, mais peut on compiler un fichier source en Python ?
Je n'ai pas les compétences techniques pour dire, mais j'ai cru comprendre que la productivité dont tu jouis en développant en Python (comme le non-typage des données) Les 'données' sont fortement typées en Python. Mais c'est un typage
'dynamique' : les 'variables' sont en fait des symboles 'liés' à des objets, et ce n'est pas la variable qui est typée, mais l'objet qu'elle référence.
rend très difficile l'écriture d'un compilateur en code natif.
Il existe des compilateurs en code natif pour Common Lisp, langage qui pousse le dynamisme encore plus loin que Python. Je ne pense donc pas que ce soit un problème technique. Par contre - pour ce que j'en ai compris -, ça n'améliorerais probablement pas tant que ça les perfs
(snip)
On Sun, 29 Aug 2004 08:46:41 +0200, "Fuxy" <seuxf@wanadoo.fr> wrote:
Le python m'a l'air simple, mais peut on compiler un fichier source en
Python ?
Je n'ai pas les compétences techniques pour dire, mais j'ai cru
comprendre que la productivité dont tu jouis en développant en Python
(comme le non-typage des données)
Les 'données' sont fortement typées en Python. Mais c'est un typage
'dynamique' : les 'variables' sont en fait des symboles 'liés' à des
objets, et ce n'est pas la variable qui est typée, mais l'objet qu'elle
référence.
rend très difficile l'écriture d'un
compilateur en code natif.
Il existe des compilateurs en code natif pour Common Lisp, langage qui
pousse le dynamisme encore plus loin que Python. Je ne pense donc pas
que ce soit un problème technique. Par contre - pour ce que j'en ai
compris -, ça n'améliorerais probablement pas tant que ça les perfs
Le python m'a l'air simple, mais peut on compiler un fichier source en Python ?
Je n'ai pas les compétences techniques pour dire, mais j'ai cru comprendre que la productivité dont tu jouis en développant en Python (comme le non-typage des données) Les 'données' sont fortement typées en Python. Mais c'est un typage
'dynamique' : les 'variables' sont en fait des symboles 'liés' à des objets, et ce n'est pas la variable qui est typée, mais l'objet qu'elle référence.
rend très difficile l'écriture d'un compilateur en code natif.
Il existe des compilateurs en code natif pour Common Lisp, langage qui pousse le dynamisme encore plus loin que Python. Je ne pense donc pas que ce soit un problème technique. Par contre - pour ce que j'en ai compris -, ça n'améliorerais probablement pas tant que ça les perfs
(snip)
Michel Claveau - abstraction méta-galactique non triviale en fuite perpétuelle.
Bonsoir !
L'aspect dynamique ne joue pas que sur le typage ; il s'applique aussi au code (à la structure du programme).
Comment, avec un code compilé, utiliser exec( ou execfile( ?
Comment, avec un compilateur, traiter :
if a==2: import titi as modul1 else: import toto as modul1
?
-- Michel Claveau
Bonsoir !
L'aspect dynamique ne joue pas que sur le typage ; il s'applique aussi au
code (à la structure du programme).
Comment, avec un code compilé, utiliser exec( ou execfile( ?
Comment, avec un compilateur, traiter :
if a==2:
import titi as modul1
else:
import toto as modul1
L'aspect dynamique ne joue pas que sur le typage ; il s'applique aussi au code (à la structure du programme).
Comment, avec un code compilé, utiliser exec( ou execfile( ?
Comment, avec un compilateur, traiter :
if a==2: import titi as modul1 else: import toto as modul1
?
-- Michel Claveau
Michel Claveau - abstraction méta-galactique non triviale en fuite perpétuelle.
Bonsoir !
Ce n'est pas une véritable compilation, mais plutôt une traduction en un langage intermédiaire, qui est lui-même interprété, à l'exécution. Une compilation devrait fournir un fichier nativement exécutable, ce qui n'est pas le cas avec Python.
En plus, cette traduction n'est pas faite AVANT exécution, mais AU MOMENT de l'exécution. La preuve en est le résultat des modules, appelés ou non, selon les circonstances d'exécution, et donc traduits ou non en .pyc ou .pyd
Et puis une interprétation est elle-même une sorte de compilation, bloc par bloc (autrefois, ligne par ligne).
@-salutations -- Michel Claveau
Bonsoir !
Ce n'est pas une véritable compilation, mais plutôt une traduction en un
langage intermédiaire, qui est lui-même interprété, à l'exécution. Une
compilation devrait fournir un fichier nativement exécutable, ce qui n'est
pas le cas avec Python.
En plus, cette traduction n'est pas faite AVANT exécution, mais AU MOMENT de
l'exécution. La preuve en est le résultat des modules, appelés ou non, selon
les circonstances d'exécution, et donc traduits ou non en .pyc ou .pyd
Et puis une interprétation est elle-même une sorte de compilation, bloc par
bloc (autrefois, ligne par ligne).
Ce n'est pas une véritable compilation, mais plutôt une traduction en un langage intermédiaire, qui est lui-même interprété, à l'exécution. Une compilation devrait fournir un fichier nativement exécutable, ce qui n'est pas le cas avec Python.
En plus, cette traduction n'est pas faite AVANT exécution, mais AU MOMENT de l'exécution. La preuve en est le résultat des modules, appelés ou non, selon les circonstances d'exécution, et donc traduits ou non en .pyc ou .pyd
Et puis une interprétation est elle-même une sorte de compilation, bloc par bloc (autrefois, ligne par ligne).
@-salutations -- Michel Claveau
Richard Delorme
Le python m'a l'air simple, mais peut on compiler un fichier source en Python ?
Réponse simple : non. Python est interprété.
Non. Dans l'implémentation standard, les sources sont (automatiquement) compilées en byte-code avant exécution.
Certes, mais le byte-code lui même est interprété dans l'implémentation courante (il n'y a pas de standard labellisé ISO, AFNOR, DIN, ANSI ou autre pour Python que je sache). Et c'est cette ultime interprétation qui est le facteur limitant dans les performances de l'ensemble. Cela dit, il existe des compilateur JIT pour le byte-code python, comme psyco, par exemple: http://psyco.sourceforge.net/introduction.html
-- Richard
Le python m'a l'air simple, mais peut on compiler un fichier source en
Python ?
Réponse simple : non. Python est interprété.
Non. Dans l'implémentation standard, les sources sont (automatiquement)
compilées en byte-code avant exécution.
Certes, mais le byte-code lui même est interprété dans l'implémentation
courante (il n'y a pas de standard labellisé ISO, AFNOR, DIN, ANSI ou
autre pour Python que je sache). Et c'est cette ultime interprétation
qui est le facteur limitant dans les performances de l'ensemble. Cela
dit, il existe des compilateur JIT pour le byte-code python, comme
psyco, par exemple: http://psyco.sourceforge.net/introduction.html
Le python m'a l'air simple, mais peut on compiler un fichier source en Python ?
Réponse simple : non. Python est interprété.
Non. Dans l'implémentation standard, les sources sont (automatiquement) compilées en byte-code avant exécution.
Certes, mais le byte-code lui même est interprété dans l'implémentation courante (il n'y a pas de standard labellisé ISO, AFNOR, DIN, ANSI ou autre pour Python que je sache). Et c'est cette ultime interprétation qui est le facteur limitant dans les performances de l'ensemble. Cela dit, il existe des compilateur JIT pour le byte-code python, comme psyco, par exemple: http://psyco.sourceforge.net/introduction.html
-- Richard
Bruno Desthuilliers
Michel Claveau - abstraction méta-galactique non triviale en fuite perpétuelle. wrote:
Bonsoir !
Ce n'est pas une véritable compilation, mais plutôt une traduction en un langage intermédiaire, qui est lui-même interprété, à l'exécution.
Et ?
Que le résultat de la compilation soit un byte-code ou du code natif, il y a bel et bien compilation. Le processus est techniquement différent de celui d'un langage strictement interprété, en ce qu'il y a *d'abord* traduction du langage source en un code binaire de plus bas niveau.
Une compilation devrait fournir un fichier nativement exécutable,
Si tu va par là, une compilation devrait fournir un fichier objet. C'est la liaison qui peut produire (entre autres) un fichier exécutable.
ce qui n'est pas le cas avec Python.
En plus, cette traduction n'est pas faite AVANT exécution, mais AU MOMENT de l'exécution. Je maintiens : la compilation à lieu *avant* l'exécution. Mais il n'est
effectivement pas nécessaire de l'effectuer manuellement, l'interpréteur se chargeant d'appeler le compilateur si nécessaire.
La preuve en est le résultat des modules, appelés ou non, selon les circonstances d'exécution, et donc traduits ou non en .pyc ou .pyd Le fait que le byte-code soit ou non sauvé dans un fichier ne change
rien non plus au processus.
Et puis une interprétation est elle-même une sorte de compilation, bloc par bloc (autrefois, ligne par ligne). Hem... Si tu veux dire par là que la frontière entre interprétation et
compilation est floue, je suis d'accord, mais je ne suis pas sûr que ta terminologie soit techniquement correcte !-)
Bruno
Michel Claveau - abstraction méta-galactique non triviale en fuite
perpétuelle. wrote:
Bonsoir !
Ce n'est pas une véritable compilation, mais plutôt une traduction en un
langage intermédiaire, qui est lui-même interprété, à l'exécution.
Et ?
Que le résultat de la compilation soit un byte-code ou du code natif, il
y a bel et bien compilation. Le processus est techniquement différent de
celui d'un langage strictement interprété, en ce qu'il y a *d'abord*
traduction du langage source en un code binaire de plus bas niveau.
Une
compilation devrait fournir un fichier nativement exécutable,
Si tu va par là, une compilation devrait fournir un fichier objet. C'est
la liaison qui peut produire (entre autres) un fichier exécutable.
ce qui n'est
pas le cas avec Python.
En plus, cette traduction n'est pas faite AVANT exécution, mais AU MOMENT de
l'exécution.
Je maintiens : la compilation à lieu *avant* l'exécution. Mais il n'est
effectivement pas nécessaire de l'effectuer manuellement, l'interpréteur
se chargeant d'appeler le compilateur si nécessaire.
La preuve en est le résultat des modules, appelés ou non, selon
les circonstances d'exécution, et donc traduits ou non en .pyc ou .pyd
Le fait que le byte-code soit ou non sauvé dans un fichier ne change
rien non plus au processus.
Et puis une interprétation est elle-même une sorte de compilation, bloc par
bloc (autrefois, ligne par ligne).
Hem... Si tu veux dire par là que la frontière entre interprétation et
compilation est floue, je suis d'accord, mais je ne suis pas sûr que ta
terminologie soit techniquement correcte !-)
Michel Claveau - abstraction méta-galactique non triviale en fuite perpétuelle. wrote:
Bonsoir !
Ce n'est pas une véritable compilation, mais plutôt une traduction en un langage intermédiaire, qui est lui-même interprété, à l'exécution.
Et ?
Que le résultat de la compilation soit un byte-code ou du code natif, il y a bel et bien compilation. Le processus est techniquement différent de celui d'un langage strictement interprété, en ce qu'il y a *d'abord* traduction du langage source en un code binaire de plus bas niveau.
Une compilation devrait fournir un fichier nativement exécutable,
Si tu va par là, une compilation devrait fournir un fichier objet. C'est la liaison qui peut produire (entre autres) un fichier exécutable.
ce qui n'est pas le cas avec Python.
En plus, cette traduction n'est pas faite AVANT exécution, mais AU MOMENT de l'exécution. Je maintiens : la compilation à lieu *avant* l'exécution. Mais il n'est
effectivement pas nécessaire de l'effectuer manuellement, l'interpréteur se chargeant d'appeler le compilateur si nécessaire.
La preuve en est le résultat des modules, appelés ou non, selon les circonstances d'exécution, et donc traduits ou non en .pyc ou .pyd Le fait que le byte-code soit ou non sauvé dans un fichier ne change
rien non plus au processus.
Et puis une interprétation est elle-même une sorte de compilation, bloc par bloc (autrefois, ligne par ligne). Hem... Si tu veux dire par là que la frontière entre interprétation et
compilation est floue, je suis d'accord, mais je ne suis pas sûr que ta terminologie soit techniquement correcte !-)