Как запустить файл .pyc (скомпилированный python)?

Когда я компилирую файл Python, я получаю файл * .pyc. Когда я пытаюсь запустить это, я получаю сообщение о том, что нет программы для их запуска. Когда я ищу программу онлайн через эту опцию, она говорит, что ее нет. Может кто-нибудь помочь мне запустить там файлы?

17
задан 13 July 2015 в 17:10

3 ответа

Так как ваш файл python скомпилирован в байтах, вам нужно запустить его через интерпретатор python

python yourfile.pyc

Причина, по которой вы можете напрямую запустить ваши файлы .py, заключается в том, что у вас есть строка

#!/usr/bin/python

или

#!/usr/bin/env python

или что-то подобное в первой строке в .py файлах. Это говорит вашей оболочке выполнить остальную часть файла с интерпретатором python.

0
ответ дан 13 July 2015 в 17:10

Чтобы декомпилировать скомпилированные файлы .pyc python3, я использовал uncompyle6 в моей текущей ОС Ubuntu следующим образом:

  1. Установка uncompyle6:

    pip3 install uncompyle6
    
  2. [ 114]

    Создание файла .py из файла .pyc Выполните:

    uncompyle6 -o . your_filename.pyc
    
  3. Автоматически будет создан новый файл .py с тем же именем существующего файла .pyc.

0
ответ дан 13 July 2015 в 17:10

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 отдельно.

-1
ответ дан 22 October 2019 в 11:08

Другие вопросы по тегам:

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