Компилировать файлы python + все зависимости + intepreter в один файл java \ .net (dll или exe)? - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть пара файлов Python с некоторыми зависимостями от сторонних библиотек, например, pyaudio.Так есть ли способ скомпилировать все, включая самого Python Intepreter, в один файл .jar \ dll, чтобы использовать их в ядре java \ android или xamarin \ .net, без фактической установки python + установки pip каждый раз?Также как вариант - компилировать в c \ c ++?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Я не знаю о компиляции в C, но для компиляции исполняемых файлов в целом вы можете использовать pyinstaller, cx_freeze или несколько других менее распространенных модулей для создания исполняемой папки, которая содержит все файлы .dll для запуска программы.У меня есть только опыт работы с cx_freeze, поэтому я буду обсуждать это здесь.Если ваша цель состоит в том, чтобы у конечного пользователя был только 1 «файл» при загрузке, вам нужно использовать программу установки.Полуцитировать документацию cx_freeze по адресу: https://cx -freeze.readthedocs.io / en / latest / faq.html

cx_Freeze не поддерживает создание одного файла exe,где все библиотеки для вашего приложения встроены в один исполняемый файл.[Существуют модули, которые делают это, но, насколько я понимаю, они используют «хаки», которые могут помечать их антивирусными программами.]

Вы можете использовать IExpress длясжать каталог сборки из cx_Freeze в самораспаковывающийся архив: исполняемый файл, который распаковывает ваше приложение во временный каталог и запускает его.IExpress - это утилита, включенная в Windows, предназначенная для создания установщиков, но она одинаково хорошо работает, если вы скажете ей запускать исполняемый файл cx_Freeze после извлечения.

В качестве альтернативы, вы можете создать самораспаковывающийся архив, используя 7zip,Это немного сложнее, чем при использовании IExpress, но может обеспечить большую гибкость и позволяет создавать приложение с использованием только инструментов с открытым исходным кодом.

В качестве альтернативы вы можете скомпилировать с помощью python setup.py bdist_msi для создания одного.msi файл, который позволит пользователю выбрать, куда он хочет установить программу.В конце дня у пользователя по-прежнему будет каталог со всеми файлами .dll и еще много чего, но он сможет выбрать, куда уложить эти вещи на свой жесткий диск!Я думаю, что этот метод используется большинством приложений, которые я установил.Это предполагает, что вы также разрабатываете для Windows, если нет, вы должны включить свою ОС в свой пост.

0 голосов
/ 10 февраля 2019

Вы можете использовать PyInstaller для создания исполняемого файла.Используйте эту команду:

pyinstaller --onefile <your_script>.py

https://medium.com/dreamcatcher-its-blog/making-an-stand-alone-executable-from-a-python-script-using-pyinstaller-d1df9170e263

...