Когда я компилирую файл Python, я получаю файл * .pyc. Когда я пытаюсь запустить это, я получаю сообщение о том, что нет программы для их запуска. Когда я ищу программу онлайн через эту опцию, она говорит, что ее нет. Может кто-нибудь помочь мне запустить там файлы?
18
Чтобы декомпилировать скомпилированные файлы .pyc python3, я использовал
uncompyle6
в своей текущей ОС Ubuntu следующее:Установка uncompyle6:
Чтобы создать файл .py из файла .pyc Запустите:
Автоматически будет создан новый файл .py с тем же именем существующего файла .pyc.
источник
Python компилирует файлы .py и сохраняет их как файлы .pyc, чтобы он мог ссылаться на них в последующих вызовах. .Pyc содержит скомпилированный байт-код исходных файлов Python, к которому интерпретатор Python компилирует исходный код. Этот код затем выполняется виртуальной машиной Python. Нет ничего плохого в их удалении (.pyc), но они сэкономят время компиляции, если вы выполняете много обработки.
Python является интерпретируемым языком, в отличие от скомпилированного, хотя различие может быть размытым из-за присутствия компилятора байт-кода. Компиляция обычно означает преобразование в машинный код, который работает быстрее всего. Но переводчики берут текст, читаемый человеком, и исполняют его. Они могут сделать это на промежуточной стадии.
Например, когда вы запускаете исходный файл myprog.py, интерпретатор python сначала проверяет,
myprog.pyc
существует ли какой-либо объект (это версия скомпилированного байт-кодаmyprog.py
), и является ли он более поздним или более поздним, чемmyprog.py
. Если это так, переводчик запускает его. Если он не существует илиmyprog.py
более поздний, чем он (имеется в виду, что вы изменили исходный файл), интерпретатор сначала компилируетmyprog.py
вmyprog.pyc
.Из приведенного выше примера есть одно исключение. Если вы поместите
#! /usr/bin/env python
в первую строкуmyprog.py
, сделайте его исполняемым, а затем запуститеmyprog.py
его самостоятельно.источник
pyc
файлы существуют, но вы не ответили на вопрос, как их запускать. Это можно квалифицировать как очень расширенный комментарий, а не как ответ . Пожалуйста, отредактируйте свой пост, чтобы добавить актуальный ответ.