2011-07-28 5 views
9

... czy wymaga to jakiegoś rodzaju wrapperów?Czy mogę używać wszystkich standardowych bibliotek w języku Python z IronPython lub

Byłem pod wrażeniem, że IronPython jest implementacją Pythona opartą na .NET, która w jakiś magiczny sposób umożliwia aplikacjom zbudowanym za pomocą IronPython korzystanie ze standardowych bibliotek Pythona (które moim zdaniem zawierają surowe źródła .py lub źródła .py pakowane do jajek) , ale kiedy czytałem http://www.doughellmann.com/PyMOTW/hashlib/index.html na dole strony zauważyłem: "Opakowanie dla hashlib, które współpracuje z IronPythonem." który natychmiast postawił mnie na baczności ...

+0

IronPython jest ponowną implementacją języka Python w środowisku CLR. Więc niekoniecznie będzie mieć wszystkie wsparcie biblioteki. Udostępniono wiele, ale nie oczekuj 100% przenośności w programach CPython. – Keith

Odpowiedz

10

To zależy:

  • Jeżeli moduł biblioteki jest realizowany w czystym Pythonie, jest prawdopodobne, aby pracować.
  • Moduł biblioteczny zaimplementowany w C nie działa. Celem aplikacji ironclad project jest umożliwienie IronPython importowania i używania skompilowanych rozszerzeń języka P w języku Python.
+0

To się zgadza. Pamiętaj też, że będziesz miał oczywiście dostęp do obszernej biblioteki klasy .NET (która jest największym atutem IronPythona), który ma wszystkie wbudowane elementy, jakie kiedykolwiek potrzebowałem, oprócz tych, które są zawarte w Ironpythonie. Nie wspominając o żadnej zewnętrznej bibliotece .NET, którą można bez problemu zintegrować z projektem IronPythona za pomocą prostego 'clr.AddReference()'. – Aphex

+0

A następnie masz również moduły, które są ponownie wdrażane. Przykładem jest moduł '' re'' (do wykonywania dopasowywania wyrażenia regularnego). W CPython, moduł '' re'' jest modułem Pythona, który używa modułów rozszerzeń C. W IronPython, moduł '' re'' jest zaimplementowany w języku C# i używa System.Text.RegularExpressions BCL. – codeape

2

Nie - nie można używać standardowych bibliotek . A nawet wszystkie istniejące standardowe biblioteki IronPython nie są takie same jak w pythonie - wszystkie one są nową implementacją - na przykład można użyć modułu pythala datetime, ale nie ma on implementacji strptime jak w czystym pythonie i tak dalej.

Możesz przeczytać więcej here i Does IronPython implement python standard library?

W ogólnym IronPython 2.6 jest implementacja Pythona 2.6, ale nie wszystkie standardowe moduły Pythona zostały przeniesione do IronPython.

Ponadto można odczytać następujące IronPython vs. Python .NET

Powiązane problemy