Возможно ли скомпилировать Python изначально (помимо байтового кода pyc)?

StackOverflow https://stackoverflow.com/questions/205062

  •  03-07-2019
  •  | 
  •  

Вопрос

Интересно, возможно ли создать исполняемый модуль из скрипта Python.Мне нужно иметь максимальную производительность и гибкость Python-скрипта без необходимости запуска в среде Python.Я бы использовал этот код для загрузки пользовательских модулей по требованию для настройки моего приложения.

Это было полезно?

Решение

  • Там есть пирекс который компилирует python-подобный исходный код в модули расширения python
  • rpython который позволяет вам компилировать python с некоторыми ограничениями для различных бэкэндов, таких как C, LLVM, .Net и т.д.
  • Есть также сброшенная кожа который переводит python на C ++, но я не могу сказать, хорошо ли это.
  • ПыПи реализует JIT-компилятор, который пытается оптимизировать время выполнения путем перевода фрагментов того, что выполняется во время выполнения, в машинный код, если вы пишете для интерпретатора PyPy, это может быть приемлемым путем.
  • Тот же автор, который работает над JIT в PyPy, написал psyco ранее, который оптимизирует python в интерпретаторе CPython.

Другие советы

Вы можете использовать что-то вроде py2exe для компиляции вашего скрипта python в exe-файл или заморозить его для двоичного файла Linux.

видишь: Как я могу создать непосредственно исполняемое кроссплатформенное приложение с графическим интерфейсом, используя Python?

Я добился большого успеха, используя Китон, который основан на pyrex и расширяет его:

Cython - это язык, который делает написание расширений C для Python таким же простым, как и сам Python.Cython основан на хорошо известном Pyrex, но поддерживает более передовые функциональные возможности и оптимизации.

Язык Cython очень близок к языку Python, но Cython дополнительно поддерживает вызов C функций и объявление типов C для переменных и атрибутов класса.Это позволяет компилятору генерировать очень эффективный код C из кода Cython.

Это делает Cython идеальным языком для переноса во внешние библиотеки C и для быстрых модулей C, которые ускоряют выполнение кода Python.

Я думаю, вы можете использовать jython для компиляции python в байт-код Java, а затем скомпилировать это с помощью GCJ.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top