2009-12-24 5 views
28

Я новичок в языке программирования Python. Мне было интересно, можно ли скомпилировать программу, написанную на Python.Можно ли скомпилировать программу, написанную на Python?

+3

Вы на самом деле не компилируете скрипт python. вы запускаете его с помощью интерпретатора Python. – ghostdog74

+10

@ ghostdog74 - Да, но Python _can_ будет скомпилирован. –

+1

@andrew, да, я знаю, что Python может быть скомпилирован. Этот парень новичок в Python, поэтому я понимаю, что он подразумевал компиляцию, как то, что вы делаете с C, например, не более продвинутые вещи, такие как файлы py2exe или pyc ... – ghostdog74

ответ

31

Я думаю Compiling Python Code будет хорошим местом для начала:

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

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

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

1

python compile на лету, когда вы его запускаете.

Выполнить файл .py по (Linux): питон abc.py

2

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

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

8

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

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

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

import py_compile 
py_compile.compile("yourpythoncode.py") 
+1

py2exe особенно хорош для этого. Я использовал его много и очень доволен этим. Он даже вмещает все ваши операторы импорта и несколько модулей/файлов кода – inspectorG4dget

10

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

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

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

Возможно, я немного педантичный на этом :-P

12

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

1

Избегайте избыточности. Я не повторяю свой ответ здесь.

См. Мой ответ here.

Смежные вопросы