У меня есть Iron Python script, который я хочу запустить, а затем интерпретатор ipy выводит сборку, которую я могу запускать на других машинах. Как мне это сделать? Есть ли переключатель, который я могу передать ipy.exe?
Генерировать сборки .NET из Iron Python
Ответ 1
Есть инструмент, который поставляется с 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
в сборке.
Ответ 2
Использование SharpDevelop
Один из способов использования SharpDevelop, он легко собирает сборки (исполняемые файлы и библиотеки классов).
Процесс прост:
- Создание решения Python (варианты включают: приложение класса lib, консоль или Windows)
- Введите свой код Python как обычно
- Создайте свое решение или проект
Файлы .exe и .dll будут в соответствующем каталоге вывода сборки (Debug или Release).
Использование pyc.py
Другим способом является компилятор командной строки IronPython script, называемый pyc.py.
Компилятор script можно найти в каталоге:
[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
Ответ 3
вы также можете скомпилировать с помощью
import clr
clr.CompileModules("foo.dll","foo.py")
для asp.net, если вы используете pyc.py для компиляции, вы не сможете импортировать модули. Они ожидают исправить это в 2.6.2 или новее