2009-06-18 7 views
7

Zawsze miałem to marzenie o stworzeniu "prawdziwego exe" z języka skryptowego. Z dostępnymi implementacjami Pythona i Ruby opartymi na DLR, czy zbliża się to do rzeczywistości?Żelazny Python/Iron Ruby EXE

Chciałbym stworzyć 'prawdziwy aplikacji':

  • Windows Forms aplikacji
  • konsoli App
  • usługa Windows

i mają jednostki dystrybucji być skompilowanym exe.

Czy to możliwe? Lub czy MS właśnie utworzyło interpretery plików skryptowych oparte na .NET?

Jeśli to robisz, w jaki sposób konstruujesz swoje aplikacje/projekty? Czy używasz hybrydy kodu C# i DLR?

Odpowiedz

4

Projekt IronPython lub IronRuby może być skompilowany do biblioteki dll lub pliku wykonywalnego po prostu dobrze i będzie "prawdziwym" plikiem wykonywalnym pod każdym względem. zastrzeżenie, że osoba je uruchamiająca musi mieć odpowiednią strukturę .Net i zainstalowane zależności (zależności mogą być obecne w tym samym katalogu domyślnie zamiast tego, ale framework musi być zainstalowany). Integracja z Visual Studio wciąż nie istnieje, ale projekty takie jak IronPythonStudio wykorzystują darmową powłokę VS do dobrego efektu. Istnienie DLR jako zależności dla dynamizmu C# w VS 2010 powinno oznaczać, że integracja z VS z grup Iron * staje się łatwiejszym celem i wyższym priorytetem.

Wynik nie jest w żaden sposób interpretowany (kod CIL jest wstawiany do kodu maszynowego w czasie wykonywania lub przez ngen w razie potrzeby), a niektóre aspekty DLR oznaczają, że niektóre działania są odłożone w podobny sposób jak późniejsze wiązanie, ale silniej i niektóre wyrafinowane mechanizmy buforowania, aby umożliwić względnie szybkie porównanie z naiwnymi tłumaczami.

Wiele tradycyjnie interpretowanych języków skryptowych tworzy własne strategie kompilacji oparte na VM lub wykorzystuje istniejące (takie jak JVM, .NET CLR lub otwarte, takie jak LLVM), ponieważ prowadzi to do znacznego zwiększenia wydajności w wielu typowych przypadkach.

W przypadku języków Iron * podstawą MS CLR jest to, że powstałe pliki wykonywalne to "Just Work" w większości instalacji najbardziej popularnej rodziny OS. W przeciwieństwie do Javy, gdzie plik jar nie jest "uruchamialny" przez bezpośrednie kliknięcie/lub "wykonanie" przez powłokę w wielu systemach operacyjnych. Z tego wynika, że ​​zmniejsza to interoperacyjność w porównaniu do rozwiązania opartego na JVM lub LLVM, w którym obsługa platform jest szersza, ale nieuchronnie bardziej zróżnicowana w integracji z OS.

+0

można dostarczyć dokumentację lub procedury w tej sprawie?Nie wydaje się, że można "Plik-> Nowy projekt" Python w Visual Studio, więc niektóre dodatkowe prace są wymagane. – JoshRivers

+0

Integracja VS wciąż nie istnieje (dodam notatkę do tego efektu), ale możesz użyć http://www.codeplex.com/IronPythonStudio, aby uzyskać środowisko podobne do VS (wykorzystuje on zmniejszoną powłokę VS jako podstawę) – ShuggyCoUk

+0

Jaka jest rzeczywista metoda uzyskania skompilowanego kodu DLR w plikach wykonywalnych? W poniższej odpowiedzi udało mi się znaleźć link i wydaje się, że odnosi się tylko do kodu beta. – JoshRivers

1

Możesz tworzyć exe ze zwykłego pythona używając Py2Exe. Ale nie powinno być nic, co uniemożliwiłoby Ci tworzenie plików exes z IronPythonem przy użyciu Visual Studio lub SharpDevelop

-1

choć nie są bezpośrednio związane z żelaza * pytaniu może być interesujące dla kogoś chcąc plików binarnych ze skryptów Pythona: pyinstaller

pod Windows (32-bit i 64-bit), Linux (32-bit i 64- bit) oraz Mac OS X (32-bitowa)

prace dowolnej wersji Pythona od 1,5 do 2,7

+1

otrzymał * nic * do zrobienia z pytaniem – oma

+0

, jeśli przeczytasz pierwsze zdanie pytania, zobaczysz, co mój post ma do czynienia z pytaniem ... – Matus