Si vous souhaitez principalement baser votre code sur le framework .NET, je recommande vivement IronPython vs Python.NET. IronPython est à peu près .NET natif - il fonctionne donc très bien lors de l'intégration avec d'autres langages .NET.
Python.NET est idéal si vous souhaitez simplement intégrer un ou deux composants de .NET dans une application Python standard.
Il existe des différences notables lors de l'utilisation d'IronPython - mais la plupart d'entre elles sont assez subtiles. Python.NET utilise le runtime CPython standard, donc cette page Wiki est une discussion pertinente sur les différences entre les deux implémentations. Les plus grandes différences se produisent dans le coût des exceptions - de sorte que certaines des bibliothèques Python standard ne fonctionnent pas aussi bien dans IronPython en raison de leur implémentation.
Tout en étant d'accord avec les réponses données par Reed Copsey et Alex Martelli, je voudrais souligner une autre différence: le Global Interpreter Lock (GIL). Alors qu'IronPython n'a pas les limites du GIL, CPython en a - il semblerait donc que pour les applications où le GIL est un goulot d'étranglement, par exemple dans certains scénarios multicœurs, IronPython a un avantage sur Python.NET.
À partir de la documentation Python.NET:
Un autre problème est le support IDE. CPython a probablement un meilleur support IDE à l'heure actuelle qu'IronPython - cela peut donc être un facteur dans le choix de l'un par rapport à l'autre.
la source
La plupart des bibliothèques Python scientifiques et numériques qui reposent sur CPython C-API (numpy, scipy, matplotlib, pandas, cython, etc.) fonctionnent principalement sous CPython, donc dans ce cas, votre meilleur pari est pythonnet (autres noms - Python.NET et Python pour .NET). Il en va de même pour les liaisons GUI CPython telles que WxWidgets, PyQt / PySide, GTK, Kivy, etc., bien que pythonnet et IronPython puissent utiliser WPF et WinForms.
Enfin, IronPython ne prend pas encore totalement en charge Python 3.
la source
IronPython est ".NET natif" - il sera donc préférable si vous souhaitez intégrer complètement votre code Python avec .NET jusqu'au bout; Python.NET fonctionne avec Python classique, donc il vous permet de garder le "bras de fer" de votre code Python loin de .NET proprement dit. (Notez qu'avec ce code, vous pouvez en fait utiliser des extensions écrites pour CPython à partir de votre code IronPython, ce n'est donc plus une condition discriminante).
la source
IronPython vient de Microsoft, donc j'irais avec mon instinct et utiliserais celui-là en premier, car vous devez supposer qu'il fonctionnera mieux avec d'autres technologies MSFT.
la source
Comme pour 2016.
Dans mon entreprise, nous avons utilisé IronPython, mais nous n'étions pas satisfaits des performances (principalement l'utilisation de la mémoire - le ramasse-miettes était trop lent), nous avons donc décidé de passer à Python standard et de l'intégrer à .Net en utilisant Zeroce-s ICE.
la source
IronPython, actuellement, ne prend pas en charge Python 3.6 (seulement 2.7)
from IronPython 3 "Les versions d'IronPython 3 ne sont pas encore fournies."
la source
Ironpython est comme C # à son tour, il s'appuie sur des bibliothèques prédéfinies statiques alors que contrairement à C #, il est un langage dynamique.
Cpython est comme C ++ comme Ironpython est un langage dynamique et a accès à des bibliothèques dynamiques qui à son tour se traduisent par l'obligation de tout écrire.
Ironpython est plus rapide que C # dans certains domaines mais pas plus rapide que Cpython, mais vous pouvez lier Ironpython à n'importe quel langage afin de surmonter les problèmes à venir, mais vous pouvez encore faire de même avec Cpython.
Un langage drôle, simple et puissant quel que soit votre choix!
la source
Iron Python est fondamentalement Python 2.7 avec un support .net intégré, il ne supportera probablement jamais Python 3. Il perd sur les bibliothèques C et Python, mais du côté torsion a accès à .net et peut être étendu avec C #. Donc, si vous utilisez déjà C #, Iron Python est un bonus.
la source
Je préfère principalement Python pour .NET, car IronPython est compilé en tant que code managé, qui peut être facilement décompilé (ce que je déteste le plus), mais avec py2exe ou pyinstaller, vous pouvez compiler Python avec le module NET en tant qu'application non gérée.
la source