VM Python
Un article de Haypo.
(Différences entre les versions)
Version du 17 juillet 2012 à 21:22 (modifier) Haypo (Discuter | Contributions) (Nouvelle page : Catégorie:Langage de programmation {{Retour|Python|Retour à Python}} Python est un langage. On peut compiler du Python pour donner du code machine i386, mais on peut auss...) ← Différence précédente |
Version du 17 juillet 2012 à 21:23 (modifier) (défaire) Haypo (Discuter | Contributions) Différence suivante → |
||
Ligne 3 : | Ligne 3 : | ||
{{Retour|Python|Retour à Python}} | {{Retour|Python|Retour à Python}} | ||
- | [[Python]] est un langage. On peut compiler du Python pour donner du code machine i386, mais on peut aussi en faire du bytecode Java, ou plus couramment du bytecode pour la machine virtuelle CPython (l'interpréteur le plus connu). Voici donc une liste de machines virtuelles permettant d'exécuter du Python : | + | [[Python]] est un langage. On peut compiler du Python pour donner du code machine i386, mais on peut aussi en faire du bytecode Java, ou plus couramment du bytecode pour la machine virtuelle CPython (l'interpréteur le plus connu). |
+ | |||
+ | == VM == | ||
+ | |||
+ | Voici donc une liste de machines virtuelles permettant d'exécuter du Python : | ||
+ | |||
* [http://www.jython.org/ Jython] : Exécution dans une ''Java Virtual Machine'' (JVM, voir [[Java]]). Voir aussi le projet [http://jpype.sourceforge.net/ Jpype] qui permet d'utiliser du Java dans Python. | * [http://www.jython.org/ Jython] : Exécution dans une ''Java Virtual Machine'' (JVM, voir [[Java]]). Voir aussi le projet [http://jpype.sourceforge.net/ Jpype] qui permet d'utiliser du Java dans Python. | ||
* [http://ironpython.com/ IronPython] : Dans une plateforme .NET avec intégration du ''Common Language Runtime'' (CLR) | * [http://ironpython.com/ IronPython] : Dans une plateforme .NET avec intégration du ''Common Language Runtime'' (CLR) | ||
Ligne 12 : | Ligne 17 : | ||
Script intéressant : [http://www.egenix.com/files/python/platform.py platform.py], donne diverses informations sur la plateforme exécutant le script Python. | Script intéressant : [http://www.egenix.com/files/python/platform.py platform.py], donne diverses informations sur la plateforme exécutant le script Python. | ||
- | === Articles connexes | + | == Convertir un programme Python en ... == |
+ | |||
+ | === VM / JIT === | ||
+ | |||
+ | * [http://pypy.org/ PyPy] | ||
+ | * [http://www.jython.org/ Jython] basé sur la JVM | ||
+ | * [http://ironpython.net/ IronPython] basé sur la VM .NET | ||
+ | * [https://github.com/numba/numba Numba] | ||
+ | * [http://code.google.com/p/unladen-swallow/ Unladen Swallow]: fork de CPython 2.6 utilisant LLVM, n'est plus maintenu. Lire [http://qinsb.blogspot.com.au/2011/03/unladen-swallow-retrospective.html Unladen Swallow Retrospective] et la [http://python.org/dev/peps/pep-3146/ PEP 3146]. | ||
+ | * [http://psyco.sourceforge.net/ psyco]: n'est plus maintenu. | ||
+ | * [http://code.google.com/p/hotpy/ Hotpy] et [https://bitbucket.org/markshannon/hotpy_2 Hotpy 2] | ||
+ | |||
+ | === ... un autre langage (Java, Perl, C++) === | ||
+ | |||
+ | * [[Cpp|C++]] : [http://code.google.com/p/shedskin/ Shedskin] (voir aussi le [http://shed-skin.blogspot.com/ blog de son auteur]) | ||
+ | * [[Cpp|C++]] : [http://www.strout.net/python/ai/ Python2C], petit script très limité qui vise à convertir un script Python en C++ | ||
+ | * [[Cpp|C++]] : [http://www.nuitka.net/pages/overview.html Nuitka] (voir la [https://ep2012.europython.eu/conference/talks/nuitka-the-python-compiler conférence à EuroPython 2012]) | ||
+ | * [[Cpp|C++]] : [https://github.com/serge-sans-paille/pythran pythran] (voir aussi le [http://linuxfr.org/users/serge_ss_paille/journaux/pythran-python-c#comment-1367069 journal linuxfr) | ||
+ | * [[C]] : [http://code.google.com/p/unpython/ unpython] | ||
+ | * [[Perl]] : [http://perthon.sourceforge.net/ Perthon] | ||
+ | * [[Java]] : [http://www.jython.org/ Jython] | ||
+ | * Plateforme .NET : [http://ironpython.com/ IronPython] | ||
+ | |||
+ | === pseudo-Python === | ||
+ | |||
+ | * [http://code.google.com/p/pymothoa/ pymothoa] utilise LLVM; "don't support classes nor exceptions." | ||
+ | * [http://copperhead.github.com/ Copperhead] : Python vers GPU (Nvidia) | ||
+ | * [http://code.google.com/p/numexpr/ numexpr] | ||
+ | |||
+ | === ... un binaire (Windows / Unix) === | ||
+ | |||
+ | Il est possible de compiler un script Python pour produire un programme binaire. | ||
+ | * Créer un binaire Windows (PE) | ||
+ | ** [http://www.py2exe.org/ Py2exe] | ||
+ | ** [http://starship.python.net/crew/atuining/cx_Freeze/ cx_Freeze] | ||
+ | * Créer un binaire Unix (ELF) | ||
+ | ** [http://wiki.python.org/moin/Freeze freeze.py] : Inclut dans Python apparement (?) | ||
+ | |||
+ | === autres === | ||
+ | |||
+ | * [http://code.google.com/p/pymothoa/ pymothoa]: LLVM | ||
+ | * [http://copperhead.github.com/ copperhead]: GPU | ||
+ | |||
+ | |||
+ | == Articles connexes == | ||
* '''[[Python]]''' — '''[[FAQ Python]]''' — '''[[Python graphique]]''' — '''[[Installer des modules Python]]''' — '''[[Python ou rien]]''' — [[pypy]] | * '''[[Python]]''' — '''[[FAQ Python]]''' — '''[[Python graphique]]''' — '''[[Installer des modules Python]]''' — '''[[Python ou rien]]''' — [[pypy]] |
Version du 17 juillet 2012 à 21:23
Python est un langage. On peut compiler du Python pour donner du code machine i386, mais on peut aussi en faire du bytecode Java, ou plus couramment du bytecode pour la machine virtuelle CPython (l'interpréteur le plus connu).
Sommaire |
VM
Voici donc une liste de machines virtuelles permettant d'exécuter du Python :
- Jython : Exécution dans une Java Virtual Machine (JVM, voir Java). Voir aussi le projet Jpype qui permet d'utiliser du Java dans Python.
- IronPython : Dans une plateforme .NET avec intégration du Common Language Runtime (CLR)
- Parrot : Machine virtuelle en développement qui sera utilisée pour exécuter du Perl6 ou Python
- pypy : Implémentation de Python codée en Python qui se veut aussi rapide que l'implémentation en C, voir même plus en utilisant une analyse dynamique du code ...
- Stackless Python
Script intéressant : platform.py, donne diverses informations sur la plateforme exécutant le script Python.
Convertir un programme Python en ...
VM / JIT
- PyPy
- Jython basé sur la JVM
- IronPython basé sur la VM .NET
- Numba
- Unladen Swallow: fork de CPython 2.6 utilisant LLVM, n'est plus maintenu. Lire Unladen Swallow Retrospective et la PEP 3146.
- psyco: n'est plus maintenu.
- Hotpy et Hotpy 2
... un autre langage (Java, Perl, C++)
- C++ : Shedskin (voir aussi le blog de son auteur)
- C++ : Python2C, petit script très limité qui vise à convertir un script Python en C++
- C++ : Nuitka (voir la conférence à EuroPython 2012)
- C++ : pythran (voir aussi le [http://linuxfr.org/users/serge_ss_paille/journaux/pythran-python-c#comment-1367069 journal linuxfr)
- C : unpython
- Perl : Perthon
- Java : Jython
- Plateforme .NET : IronPython
pseudo-Python
- pymothoa utilise LLVM; "don't support classes nor exceptions."
- Copperhead : Python vers GPU (Nvidia)
- numexpr
... un binaire (Windows / Unix)
Il est possible de compiler un script Python pour produire un programme binaire.
- Créer un binaire Windows (PE)
- Créer un binaire Unix (ELF)
- freeze.py : Inclut dans Python apparement (?)
autres
- pymothoa: LLVM
- copperhead: GPU