Для более тонкой детализации вы можете использовать полиномиальный цветовой подход, используя подход, который я предложил в следующем: Как я могу отобразить вращающийся NSProgressIndicator в другом цвете?
Посетите страницу образцов IronPython
Примерно на полпути вниз по странице:
Pyc - компилятор командной строки Python Этот пример показывает разработчикам, как создавать исполняемые файлы .NET непосредственно из скриптов IronPython. Загружаемый файл readme.htm поможет вам начать работу.
API-интерфейсы хостинга IronPython можно использовать для компиляции сценариев Python в библиотеки DLL, исполняемые файлы консоли или исполняемые файлы Windows. Скрипт pyc.py, включенный в это руководство, использует эти API хостинга и может использоваться для компиляции других скриптов Python. Он предоставляет множество флагов, таких как возможность указать целевую платформу сборки .NET (например, x64).
Хотя сборки, создаваемые API хостинга IronPython, являются настоящими сборками .NET, динамический характер языка Python затрудняет их использование из других языков .NET. Короче говоря, это означает, что не рекомендуется пытаться импортировать типы Python в другие языки .NET, такие как C #.
Изменить: Только что заметили, что вы упомянули, что PYC устарела. Что делает это так? Команда IronPython, похоже, все еще продвигает его, так что я могу представить, что дело не так уж далеко.
У меня были небольшие проблемы при попытке реализовать это решение. Вот что я сделал:
C: \ Program Files
ipy.exe pyc.py other_hw.py /main:console_hw.py
Это дало мне следующую ошибку:
Traceback (most recent call last):
File "pyc\pyc.py", line 35, in pyc\pyc.py
AttributeError: attribute 'CompilerSink' of 'namespace#' object is read-only
Я внес следующие изменения в строку 35:
До: class PycSink ( Hosting.CompilerSink):
После: class PycSink ():
Сохранение файла оказалось проблемой из-за разрешений, поэтому я скопировал содержимое pyc.py в новое окно IDLE (для создания копия), удалил существующую копию pyc.py
и сохранил копию как pyc.py
в том же месте. Это решает проблемы с разрешениями и позволяет вносить изменения.
После внесения этого изменения я снова попытался запустить эту команду:
ipy.exe pyc.py other_hw.py /main:console_hw.py
Однако это время, я получил следующую ошибку:
Traceback (most recent call last):
File "pyc\pyc.py", line 170, in pyc\pyc.py
File "pyc\pyc.py", line 56, in Main
AttributeError: attribute 'ResourceFile' of 'namespace#' object is read-only
На этом этапе я подытожил тот факт, что сейчас час ночи, и у меня завтра промежуточный экзамен,
Вы можете использовать pyc.py
, компилятор командной строки Python , который включен в IronPython с версия 2.6 для компиляции скрипта Python в исполняемый файл. Вы найдете его в % IRONPYTONINSTALLDIR% \ Tools \ Scripts \ pyc.py
на вашем жестком диске.
Предположим, у вас есть простой сценарий теста.py
, который просто выводит что-то на консоль. Вы можете превратить это в исполняемый файл с помощью следующей командной строки (при условии, что каталог IronPython является текущим каталогом и что test.py
также находится там):
ipy.exe Tools\Scripts\pyc.py /main:test.py /target:exe
Примечание. Если вы используете формы и не хотите, чтобы окно консоли открывалось, вы хотите использовать / target: winexe
вместо / target: exe
.
Результатом будут два файла: test.dll
и test.exe
. test.dll
будет содержать ваш фактический код сценария, а test.exe
- это просто средство запуска для test.dll
. Вы можете распространить этот EXE и DLL на другие компьютеры, на которых не установлен IronPython, если вы включите файлы
IronPython.dll
, Microsoft.Dynamic.dll
, Microsoft.Scripting. Core.dll
, Microsoft.Scripting.Debugging.dll
, Microsoft.Scripting.dll
, Microsoft.Scripting.ExtensionAttribute.dll
и IronPython.Modules.dll
(иногда требуется). Также см. Запись в блоге IronPython - как скомпилировать exe .