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


18

Коли я компілюю файл python, я отримую * .pyc файл. Коли я намагаюся запустити це, я отримую повідомлення про те, що не існує програми для їх запуску. Коли я шукаю програму в Інтернеті через цю опцію, вона каже, що її немає. Хтось може мені допомогти запустити файли?

Відповіді:


24

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

python yourfile.pyc

Причина ви можете запускати свої файли .py безпосередньо, тому що у вас є лінія

#!/usr/bin/python

або

#!/usr/bin/env python

або щось подібне на першому рядку у файлах .py. Це повідомляє вашій оболонці виконати решту файлів за допомогою інтерпретатора python.


3
Щоб доповнити цю відповідь: файл .pyc не збирається в найсуворішому значенні цього терміна, оскільки це не власний машинний код. Це, як писав @tomdachi, байт-код, специфічний для python (дуже схожий на Java .class), тому він все ще потребує інтерпретатора python для виконання.
П'єр-Антуан

насправді, pyc був створений лише при імпорті файлу py. так що марно запускати файл pyc!
一个 患有 癌 并且 卓越 的 工程师 来 陆家嘴 搞 金融 显然 为了 理想 哈哈哈

2

Для декомпіляції зібраних файлів .pyc python3 я використовував uncompyle6у своїй поточній ОС Ubuntu наступним чином:

  1. Встановлення unpypyle6:

    pip3 install uncompyle6
  2. Щоб створити .py файл із .pyc-файлу Запустіть:

    uncompyle6 -o . your_filename.pyc
  3. Автоматично буде створений новий .py-файл із тим самим наявним іменем .pyc-файлу.


-1

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
Ласкаво просимо до Ask Ubuntu ! Це гарне пояснення того, чому pycіснують файли, але ви не відповіли на питання, як їх запустити. Це можна кваліфікувати як дуже розширений коментар, а не відповідь . Будь ласка , змініть свій пост , щоб додати фактичний відповідь.
Мелебій
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.