Вопрос

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

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

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

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

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

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

Это было полезно?

Решение

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

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

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

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

Другие советы

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top