Действительно ли возможно скомпилировать программу, записанную в Python? [закрытый]

Я плохо знаком с языком программирования Python. Я задавался вопросом, возможно ли скомпилировать программу в записанный в Python.

Действительно ли возможно преобразовать сценарии Python в некоторые более низкие языки программирования уровня, которые затем могут быть скомпилированы в двоичный код?

Разработчик, который рассматривает для кодирования в Python, мог бы хотеть сохранить возможность открытой, чтобы смочь пойти для двоичного распределения позже.

44
задан SzieberthAdam 27 September 2018 в 08:25
поделиться

6 ответов

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

19
ответ дан 26 November 2019 в 22:00
поделиться

python - интерпретируемый язык, так что вам не нужно компилировать свои сценарии, чтобы заставить их работать. Самый простой способ заставить его работать - это перейти в его папку в терминале и выполнить "python somefile.py". Это зависит от того, установлен ли у вас питон с сайта python.

Вы можете скомпилировать приложения на питоне, но это, как правило, не является тем, что должен делать изначально новый разработчик. Если это то, что Вы ищете, взгляните на py2exe. Это возьмёт ваш python-скрипт и упакует его в виде исполняемого файла, как и любую другую программу на вашем Windows-компьютере. Вы также можете скомпилировать отдельные файлы с помощью python, как описано в разделе "Компиляция модулей Python в байтовый код" на этом сайте.

2
ответ дан 26 November 2019 в 22:00
поделиться

Вам не нужно его компилировать. Сначала вы его используете (импортируете), он компилируется интерпретатором CPython. Но если вы действительно хотите скомпилировать его, есть несколько вариантов.

Для компиляции в exe

Или 2 скомпилируйте только определенный *.py файл, вы можете просто использовать

import py_compile
py_compile.compile("yourpythoncode.py")
10
ответ дан 26 November 2019 в 22:00
поделиться

Python, как динамический язык, не может быть "скомпилирован" в машинный код статически, как C или COBOL может. Для выполнения кода, который, по определению языка, является динамической операцией, всегда нужен интерпретатор.

Вы можете "транслировать" исходный код в байткоде, что является всего лишь промежуточным процессом, который интерпретатор делает, чтобы ускорить загрузку кода, он преобразует текстовые файлы с комментариями, пустыми пробелами, словами типа 'if', 'def', 'in' и т.д. в двоичном коде, но операции, выполняемые на Python, точно такие же, а не в машинном коде или любом другом языке. Это то, что хранится в файлах .pyc, а также переносится между архитектурами.

Вероятно, вам нужно не "компилировать" код (что невозможно), а "встраивать" интерпретатор (на правильной архитектуре) в код, чтобы позволить запустить код без внешней установки интерпретатора. Для этого можно использовать все эти инструменты, такие как py2exe или cx_Freeze.

Может быть, я немного педантичен в этом :-P

.
15
ответ дан 26 November 2019 в 22:00
поделиться

Я думаю Компиляция Python-кода будет хорошим местом для начала:

Python исходный код автоматически скомпилированный в байтовый код Python по команде Переводчик с китайцев. Скомпилированный код обычно хранятся в файлах PYC (или PYO), и регенерируется, когда источник обновленный, или когда это необходимо по другим причинам.

Распространить программу среди людей, которые уже установили Python, вы можете отправить либо PY файлы, либо PYC Файлы. В последних версиях вы можете также создать ZIP архив, содержащий PY или PYC файлы, и используйте небольшой "сценарий загрузки", чтобы добавить, что ZIP архивировать по пути.

Чтобы "скомпилировать" программу на Python в исполняемый, используйте связующий инструмент, такой как в качестве инсталлятора Гордона МакМиллана. (альтернативная загрузка) (кроссплатформенность), Томаса Хеллера. py2exe (Windows), Anthony Tuininga's cx_Freeze (кроссплатформенность), или Bob Пи2ап (Мак) Ипполито. Эти инструменты помещает ваши модули и файлы данных в какой-то архивный файл, и создает исполняемый файл, который автоматически устанавливает чтобы модули были импортированы из этого архива. Некоторые инструменты могут встроить архив в исполняемый файл сам по себе.

41
ответ дан 26 November 2019 в 22:00
поделиться

Python компилируется на лету, когда вы его запускаете.

Запустите файл .py с помощью (linux): python abc.py

0
ответ дан 26 November 2019 в 22:00
поделиться
Другие вопросы по тегам:

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