Где использовать файл pyc

Я хочу знать, что такое pyc файл (байт-код python). Я хочу знать все подробности. Я хочу знать, как интерфейс pyc файлов с компилятором. Является ли это заменой exe? Нужно ли управлять python? Является ли он переносимым, как файл .py? Где я должен использовать это?

Ответ 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 вручную: интерпретатор делает их автоматически.