Ironpython 2.6 .py-> .exe [закрытый]

Для более тонкой детализации вы можете использовать полиномиальный цветовой подход, используя подход, который я предложил в следующем: Как я могу отобразить вращающийся NSProgressIndicator в другом цвете?

18
задан JasonMArcher 3 August 2015 в 15:27
поделиться

3 ответа

Посетите страницу образцов 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, похоже, все еще продвигает его, так что я могу представить, что дело не так уж далеко.

4
ответ дан 30 November 2019 в 06:59
поделиться

У меня были небольшие проблемы при попытке реализовать это решение. Вот что я сделал:

  1. Загрузите pyc из здесь . Это потребовало от меня большего количества поисков, чем следовало бы, потому что кажется, что pyc трудно найти (и я думаю, что он немного устарел)
  2. Я извлек папку pyc из zip-файла и добавил ее в свою папку IronPython в C: \ Program Files
  3. Теперь я попытался запустить эту команду на консоли Windows, как указано в файле readme в загрузке pyc: 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

На этом этапе я подытожил тот факт, что сейчас час ночи, и у меня завтра промежуточный экзамен,

2
ответ дан 30 November 2019 в 06:59
поделиться

Вы можете использовать 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 .

29
ответ дан 30 November 2019 в 06:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: