Я хочу знать, что такое pyc файл (байт-код python). Я хочу знать все подробности. Я хочу знать, как интерфейс pyc файлов с компилятором. Является ли это заменой exe? Нужно ли управлять python? Является ли он переносимым, как файл .py? Где я должен использовать это?
Где использовать файл pyc
Ответ 1
Чтобы добавить Майка Грэма в ответ, есть некоторые интересные комментарии здесь, дающие некоторую информацию о файлах pyc. Самое интересное, что я подозреваю, что это линия:
Программа не работает быстрее, когда она считывается из файла .pyc или .pyo, чем когда она считывается из файла .py; единственное, что быстрее о файлах .pyc или .pyo - это скорость, с которой они загружаются.
Который попадает в гвоздь на голове w.r.t. суть файла pyc. A pyc
является предварительно интерпретированным файлом py
. Байт-код python по-прежнему остается таким же, как если бы он был создан из файла py
- разница в том, что при использовании файла pyc
вам не нужно проходить процесс создания этого pyc
вывода (который вы при запуске файла py
). Читайте, поскольку вам не нужно преобразовывать python script в байт-код python.
Если вы столкнулись с файлами .class в java
, это аналогичная концепция - разница в java заключается в том, что вы должны выполнить компиляцию с помощью javac
до того, как Java-интерпретатор выполнит приложение. Различные способы делать вещи (внутренности будут очень разными, поскольку они разные языки), но та же самая широкая идея.
Ответ 2
Байт-код Python требует запуска Python, не может запускаться автономно без Python и специфичен для конкретной версии x.y
для Python. Он должен быть переносимым на разных платформах для той же версии. Для вас нет общей причины использовать его; Python использует его для оптимизации анализа вашего .py файла при повторном импорте. Ваша жизнь будет прекрасным игнорированием существования файлов pyc.
Ответ 3
Из docs:
В качестве важного ускорения времени запуска для коротких программ, которые используют множество стандартных модулей, если файл, называемый spam.pyc, существует в каталоге, где находится spam.py, предполагается, что он содержит уже - "байт-скомпилированная" версия спама модуля. Время модификации версии spam.py, используемой для создания spam.pyc, записывается в spam.pyc, а файл .pyc игнорируется, если они не совпадают.
См. ссылку для получения дополнительной информации. Но некоторые конкретные ответы:
Содержимое файла spam.pyc не зависит от платформы, поэтому каталог модулей Python может совместно использоваться машинами разных архитектур.
Это не исполняемый файл; он использовался внутренне компилятором в качестве промежуточного шага.
В общем, вы не делаете файлы .pyc вручную: интерпретатор делает их автоматически.