Генерация сборок .NET из Iron Python - PullRequest
17 голосов
/ 13 марта 2010

У меня есть скрипт Iron Python, который я хочу запустить, а затем интерпретатор ipy выдает сборку, которую я могу запустить на других машинах. Как я могу это сделать? Можно ли перейти на ipy.exe?

Ответы [ 3 ]

9 голосов
/ 13 марта 2010

Использование SharpDevelop

Одним из способов является использование SharpDevelop , он легко собирает сборки (исполняемые файлы и библиотеки классов).

Процесс прост:

  • Создание решения Python (варианты включают: Class lib, Console или Windows application)
  • Напишите свой код Python как обычно
  • Создайте свое решение или проект

Файлы .exe и .dll будут находиться в соответствующем выходном каталоге сборки (Debug или Release).


Использование pyc.py

Другой способ - использовать скрипт компилятора командной строки IronPython с именем pyc.py.

Сценарий компилятора находится в каталоге: [IP_install_dir]\Tools\Scripts

Использование:
ipy.exe pyc.py /main:Program.py Form.py /target:winexe


Примечание : для запуска скомпилированного exe-файла вам понадобятся следующие файлы в том же каталоге, что и ваш исполняемый файл:

IronPython.dll
IronPython.Modules.dll
Microsoft.Dynamic.dll
Microsoft.Scripting.Core.dll
Microsoft.Scripting.Debugging.dll
Microsoft.Scripting.dll
Microsoft.Scripting.ExtensionAttribute.dll
8 голосов
/ 13 марта 2010

Существует инструмент, который поставляется с IronPython, который называется Pyc или компилятор командной строки Python. Если вы установили последнюю версию 2.6 IronPython, то pyc.py будет доступен по адресу C:\Program Files (x86)\IronPython 2.6\Tools\Scripts или там, где вы установили IronPython в вашей системе. Если у вас есть более ранние версии IronPython, то pyc.py будет доступен для отдельной загрузки в пакете примеров.

С помощью pyc.py вы можете создавать консоли или сборки Windows из ваших скриптов python. Основное использование выглядит так:

ipy pyc.py /out:myprogram.exe /main:mainfile.py /target:exe program.py support.py

Выше будет сгенерирована сборка с именем myprogram.exe (/ out), которая является консольным приложением (/ target) и выполнит код в mainfile.py first (/ main), а также будет включать код из program.py и support.py в сборке.

5 голосов
/ 16 марта 2010

вы также можете скомпилировать с помощью

import clr
clr.CompileModules("foo.dll","foo.py")

для asp.net, если вы используете pyc.py для компиляции, вы не сможете импортировать модули. Они ожидают исправить это в 2.6.2 или новее

...