Железный Питон / Iron Ruby EXE - PullRequest
7 голосов
/ 18 июня 2009

У меня всегда была мечта создать «настоящего exe» из скриптового языка. С доступными реализациями Python и Ruby на основе DLR это становится ближе к реальности?

Я бы хотел создать «реальное приложение»:

  • Приложение Windows Forms
  • Консольное приложение
  • Служба Windows

И единица распределения должна быть скомпилированным exe.

Возможно ли это? Или MS только что создала интерпретаторы файлов сценариев на основе .NET?

Если вы делаете это, как вы структурируете свои приложения / проекты? Вы используете гибрид кодов C # и DLR?

Ответы [ 3 ]

4 голосов
/ 18 июня 2009

Проект IronPython или IronRuby можно просто скомпилировать в dll или исполняемый файл, и он будет «настоящим» исполняемым файлом во всех отношениях, при условии, что у человека, выполняющего их, должна быть установлена ​​соответствующая среда .Net и установлены зависимости (зависимости могут быть вместо этого присутствует в том же каталоге по умолчанию, но фреймворк должен быть установлен). Интеграция с Visual Studio по-прежнему отсутствует, но такие проекты, как IronPythonStudio , используют бесплатную оболочку VS для хорошего эффекта. Существование DLR как зависимости для c # dynamic в VS 2010 должно означать, что интеграция с VS из групп Iron * становится более легкой целью и более высоким приоритетом.

Результат никоим образом не интерпретируется (CIL вставляется в машинный код во время выполнения или, при желании, через ngen), и некоторые аспекты DLR означают, что некоторые действия откладываются аналогично позднему связыванию, но более сильно и решительно с некоторыми сложные механизмы кэширования, позволяющие сделать это относительно быстрым по сравнению с наивными интерпретаторами.

Многие традиционно интерпретируемые языки сценариев создают свои собственные стратегии компиляции на основе виртуальных машин или используют существующие (такие как JVM, .Net CLR или открытые, такие как LLVM ), поскольку это приводит к значительному увеличению производительности много общих случаев.

В случае с языками Iron * преимущество MS CLR в качестве основы заключается в том, что получающиеся исполняемые файлы «просто работают» в подавляющем большинстве установок наиболее распространенного семейства ОС. В отличие от Java, где JAR-файл не «запускается» путем непосредственного нажатия / или «выполнения» через оболочку во многих операционных системах. Обратная сторона этого заключается в том, что это снижает функциональную совместимость по сравнению, скажем, с решением на основе JVM или LLVM, где поддержка платформы шире, но неизбежно более разнообразна в интеграции с ОС.

1 голос
/ 18 июня 2009

Вы можете создавать exe-файлы из обычного python, используя Py2Exe . Но не должно быть ничего, что мешало бы вам создавать exe-файлы с IronPython с использованием Visual Studio или SharpDevelop

0 голосов
/ 26 ноября 2010

, хотя он не имеет прямого отношения к железному * вопросу, может быть интересен для тех, кто хочет получить двоичные файлы из скриптов Python: pyinstaller

работает под Windows (32-разрядная и 64-разрядная версия), Linux (32-разрядная и 64-разрядная версия) и Mac OS X (только 32-разрядная версия)

работает под любой версией Python от 1.5 до 2.7

...