pyc чем открыть для редактирования
Расширение файла PYC
Python Compiled Format
Что такое файл PYC?
PYC и PY файлы
Файлы PYC сопровождаются соответствующими файлами PY. Python компилирует PY-файл и сохраняет результат процесса в PYC-файле, который затем можно использовать для запуска программ.
Программы, которые поддерживают PYC расширение файла
Ниже вы найдете указатель программ, которые можно использовать для открытия файлов PYC, разделенных на категории 3 в соответствии с поддерживаемой системной платформой. Файлы с расширением PYC, как и любые другие форматы файлов, можно найти в любой операционной системе. Указанные файлы могут быть переданы на другие устройства, будь то мобильные или стационарные, но не все системы могут быть способны правильно обрабатывать такие файлы.
Программы, обслуживающие файл PYC
Как открыть файл PYC?
Причин, по которым у вас возникают проблемы с открытием файлов PYC в данной системе, может быть несколько. К счастью, наиболее распространенные проблемы с файлами PYC могут быть решены без глубоких знаний в области ИТ, а главное, за считанные минуты. Приведенный ниже список проведет вас через процесс решения возникшей проблемы.
Шаг 1. Скачайте и установите Foundation Python
Шаг 2. Проверьте версию Foundation Python и обновите при необходимости
Если у вас уже установлен Foundation Python в ваших системах и файлы PYC по-прежнему не открываются должным образом, проверьте, установлена ли у вас последняя версия программного обеспечения. Разработчики программного обеспечения могут реализовать поддержку более современных форматов файлов в обновленных версиях своих продуктов. Это может быть одной из причин, по которой PYC файлы не совместимы с Foundation Python. Все форматы файлов, которые прекрасно обрабатывались предыдущими версиями данной программы, также должны быть открыты с помощью Foundation Python.
Шаг 3. Настройте приложение по умолчанию для открытия PYC файлов на Foundation Python
Если у вас установлена последняя версия Foundation Python и проблема сохраняется, выберите ее в качестве программы по умолчанию, которая будет использоваться для управления PYC на вашем устройстве. Метод довольно прост и мало меняется в разных операционных системах.
Процедура изменения программы по умолчанию в Windows
Процедура изменения программы по умолчанию в Mac OS
Шаг 4. Убедитесь, что PYC не неисправен
Если проблема по-прежнему возникает после выполнения шагов 1-3, проверьте, является ли файл PYC действительным. Проблемы с открытием файла могут возникнуть по разным причинам.
1. Проверьте PYC файл на наличие вирусов или вредоносных программ.
Если файл заражен, вредоносная программа, находящаяся в файле PYC, препятствует попыткам открыть его. Сканируйте файл PYC и ваш компьютер на наличие вредоносных программ или вирусов. Если сканер обнаружил, что файл PYC небезопасен, действуйте в соответствии с инструкциями антивирусной программы для нейтрализации угрозы.
2. Убедитесь, что файл с расширением PYC завершен и не содержит ошибок
Если файл PYC был отправлен вам кем-то другим, попросите этого человека отправить вам файл. В процессе копирования файла могут возникнуть ошибки, делающие файл неполным или поврежденным. Это может быть источником проблем с файлом. Это может произойти, если процесс загрузки файла с расширением PYC был прерван и данные файла повреждены. Загрузите файл снова из того же источника.
3. Проверьте, есть ли у вашей учетной записи административные права
Некоторые файлы требуют повышенных прав доступа для их открытия. Войдите в систему, используя учетную запись администратора, и посмотрите, решит ли это проблему.
4. Проверьте, может ли ваша система обрабатывать Foundation Python
Если система перегружена, она может не справиться с программой, которую вы используете для открытия файлов с расширением PYC. В этом случае закройте другие приложения.
5. Убедитесь, что ваша операционная система и драйверы обновлены
Современная система и драйверы не только делают ваш компьютер более безопасным, но также могут решить проблемы с файлом Python Compiled Format. Возможно, файлы PYC работают правильно с обновленным программным обеспечением, которое устраняет некоторые системные ошибки.
Вы хотите помочь?
Если у Вас есть дополнительная информация о расширение файла PYC мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся здесь и отправьте нам свою информацию о файле PYC.
Русские Блоги
Расширения программ Python (py, pyc, pyw, pyo, pyd) и выбор при публикации программ
расширение
При написании программ на Python нашими общими расширениями являются py, pyc, и на самом деле есть несколько других расширений. Ниже приведено использование нескольких расширений.
Еще одним расширением исходного кода является pyw. Единственное отличие от py заключается в том, что двойной щелчок по исходному коду расширения pyw в Windows вызовет pythonw.exe для выполнения исходного кода. Этот метод выполнения не будет иметь окна командной строки. Он в основном используется, когда программе с графическим интерфейсом не нужно видеть информацию о консоли.
При выполнении кода Python вы часто будете видеть pyc-файлы с одинаковыми именами, автоматически генерируемые в одном и том же каталоге. Это байт-код после компиляции исходного кода Python. Как правило, pyc-файл py-файла, на который есть ссылка в вашем коде, будет автоматически создан при выполнении кода. Этот файл может быть выполнен напрямую, а исходный код не виден при открытии в текстовом редакторе.
Pyd не генерируется из программы Python, а является расширением, написанным на других языках, которые могут вызываться Python.
Выбор версии программы
Поскольку автор в основном рассматривает проблемы публикации только на платформе Windows, а другие платформы используют исходный код, обсуждение здесь в основном вращается вокруг платформы Windows.
Упакован как обычная программа exe
Выпуск скомпилированный pyc / pyo
Если пользователи имеют среду Python и не хотят, чтобы они видели исходный код, они могут выбрать публикацию файлов pyc / pyo.
Непосредственно исполняемые py-файлы не будут автоматически генерировать pyc, и их нужно будет компилировать вручную. Компиляция одного файла:
Скомпилировать в pyo:
Если программе с графическим интерфейсом не требуется консольное окно, вы можете создать новый файл pyw для вызова основной программы pyc. Нужно только импортировать программу pyc в pyw.
Выпуск исходного кода py
Исходный код релиза обычно используется проектами с открытым исходным кодом, объяснять нечего. Отправляйте файл py напрямую, если у другой стороны есть среда для запуска.
Русские Блоги
Сводная компиляция исходного файла python, декомпиляция, шифрование
Сначала скомпилируйте
Совет: во время компиляции лучше не указывать китайский язык во всех путях к файлам.
1. Скомпилируйте в pyc
объяснение
PyC-файлы загружаются быстрее, чем Py-файлы;
Pyc-файл представляет собой межплатформенный байт-код, выполняемый виртуальной машиной Python;
Содержимое файла pyc связано с версией Python: разные версии python компилируются для создания разных файлов pyc, которые могут выполняться только в одной и той же среде версий;
Метод компиляции
использование compileall с участием py_compile Для предварительной компиляции кода Python:
Эти два взаимосвязаны в определенном смысле, Python предварительно установил эти две вещи,
Приведенный выше py_compile будет иметь некоторые проблемы для папок, но теоретически этот синтаксис должен быть в порядке.
Может быть записан в сценарий компиляции в соответствии с потребностями проекта:
Более подробные параметры разбора compileall и команд вы можете найти по ссылке:https://docs.python.org/3/library/compileall.html
py_compile.compile(file, cfile=None, dfile=None, doraise=False, optimize=-1, invalidation_mode=None):
использование
Используйте то же самое, что и файл py, лучше удалить часть, подобную cpython-36, в середине имени файла, в противном случае ошибка руководства по пакету ModuleNotFoundError:
2. Скомпилируйте в файл pyo или opt-n.pyc
объяснение
Метод компиляции
Файл pyo на самом деле очень прост, это ревизия приведенной выше команды pyc:
бегать
Запустите и импортируйте как файл py
3. Скомпилируйте в pyd или около того библиотеку ссылок
объяснение
Visual Studio 2019 для среды компиляции Windows
Метод компиляции один
Cython
Используйте модуль Cython для генерации различных файлов в соответствии со средой компиляции.
нота: Путь к каталогу, в котором находится программа, не может содержать китайский текст
Затем мы вернемся в каталог для запуска команды, и файл pyd будет сгенерирован в windows, или файл so в linux:
Вложение: Скомпилируйте все скрипты py-файла в выбранной папке.
Метод компиляции два
Установить easycython
Этот модуль также автоматически установит зависимый Cython
Шаги преобразования
Метод компиляции три
рекомендации
Аналогично, лучше переименовать имя файла pyd, удалить среднюю часть и не перемещать переднюю и заднюю части
может пройти import test Используйте этот файл
личное предложениеСкомпилируйте код ядра в файл pyd или около того, а затем напишите простой файл main.py, чтобы импортировать и вызывать эти файлы библиотеки ссылок, чтобы скрыть код ядра.
Кроме того, Cython действительно интересно использовать в ноутбуке Jupyter 😱😱
Для использования смешанного программирования на Python и Python, пожалуйста, обратитесь к:
Во-вторых, упаковка
Сравнение различных упаковочных инструментов выглядит следующим образом (из статьиFreezing Your Code)
Solution | Windows | Linux | OS X | Python 3 | License | One-file mode | Zipfile import | Eggs | pkg_resources support |
---|---|---|---|---|---|---|---|---|---|
bbFreeze | yes | yes | yes | no | MIT | no | yes | yes | yes |
py2exe | yes | no | no | yes | MIT | yes | yes | no | no |
pyInstaller | yes | yes | yes | no | GPL | yes | no | yes | no |
cx_Freeze | yes | yes | yes | yes | PSF | no | yes | yes | no |
py2app | no | no | yes | yes | MIT | no | yes | yes | yes |
среди них pyInstaller с участием cx_Freeze Оба хороши, и кто-то в stackoverflow предложил использовать cx_Freeze, что более удобно. Похоже, что новая версия pkg_resources pyInstaller поддерживается.
1. PyInstaller
объяснение
Введение в принцип PyInstaller
PyInstaller фактически упаковывает синтаксический анализатор python и ваш собственный скрипт в исполняемый файл, а компиляция его в реальный машинный код совершенно иная, поэтому не ожидайте упаковать его в один Исполняемые файлы повысят операционную эффективность, но могут снизить операционную эффективность. Преимущество заключается в том, что вам не нужно устанавливать python и библиотеки, от которых зависит ваш скрипт, на машине оператора. В операционной системе Linux он в основном использует команды ldd и objdump в наборе инструментов binutil.
PyInstaller вводит указанный вами сценарий, сначала анализирует другие сценарии, от которых зависит этот сценарий, затем находит, копирует, собирает все связанные сценарии, включая анализатор Python, а затем помещает эти файлы в каталог или упаковывает их в Внутри исполняемого файла.
инструкции
Общие параметры, поддерживаемые PyInstaller
-D, –onedir создает каталог (содержащий несколько файлов) в виде исполняемой программы
-w, –windowed, –noconsolc Указывает, что окно командной строки не отображается во время работы программы (действительно только для Windows)
-a, –ascii не включает поддержку набора символов Unicode
-c, –nowindowed, –console указать, чтобы использовать окно командной строки для запуска программы (только для Windows)
-o DIR, –out = DIR указывает каталог, в котором создаются файлы спецификаций. Если не указан, текущий каталог используется для создания файла спецификации по умолчанию
-p DIR, –path = DIR Установить путь модуля импорта Python (аналогично установке переменной среды PYTHONPATH). Вы также можете использовать разделитель пути (Windows использует точку с запятой, Linux использует двоеточие) для разделения нескольких путей
-n NAME, –name = NAME указывает имя проекта (сгенерированная спецификация). Если эта опция не указана, основное имя файла первого скрипта будет использоваться как имя спецификации.
После завершения сборки вы увидите дополнительный каталог dist в этом каталоге и файл test.exe в этом каталоге
2. Сжать в пыз
объяснение
Вы можете открыть его непосредственно с помощью программы распаковки и просмотреть исходный код, этот метод не имеет никакого эффекта шифрования, Даже снизил операционную эффективность.
Python API: (см. Официальную документацию для описания параметров)
Основное использование
Основное использование оболочки:
[параметры] Параметры параметров:
Добавьте в первую строку #! Укажите переводчика Как команда запуска. Также в POSIX сделайте файл архива исполняемым. По умолчанию не пишется #! Первая строка и не делает файл исполняемым.
Используйте метод deflate, чтобы сжать файл, чтобы уменьшить размер выходного файла. По умолчанию файлы хранятся в архиве без сжатия.
— сжатие недопустимо при копировании файлов.
–info
отображает интерпретатор, встроенный в архивный файл для диагностики. В этом случае любые другие параметры будут игнорироваться, и SOURCE должен быть архивным файлом, а не каталогом.
Пример упаковки
Используйте код для достижения того же эффекта:
использование
Если вы указываете путь интерпретатора при упаковке, вы можете сделать это:
Три, декомпилировать
1. Декомпилируйте pyc и pyo файлы
Интернет-сайт:https://tool.lu/pyc/
(Эффект не очень хороший)
uncompyle6
Является ли наследник декомпиляции, uncompyle и uncompyle2, лично чувствую, что эффект хороший.
Эффект после декомпиляции можно назвать очень идеальным. Если ваш формат кода соответствует требованиям спецификации PEP8, он в основном совпадает с файлом из источника, но комментариев нет.
Смотрите больше использования:
Другие инструменты декомпиляции Python uncompyle2, decompyle2, DePython, unpyc, uncompyle, pycdc
Decompyle++
A Python Byte-code Disassembler/Decompiler
https://github.com/zrax/pycdc
Easy Python Decompiler
Easy Python Decompiler is python bytecode decompiler, decompiles pyc & pyo files.
https://sourceforge.net/projects/easypythondecompiler/
2. exe декомпиляция
Взломайте программу, упакованную pyinstaller:
Если исходная программа генерируется следующим образом:
Сформированmain.exe
инструмент:pyinstxtractor Ссылка на скачивание
Восстановить шаги:
1) Поместите pyinstxtractor.py и файл xxx.exe для восстановления в один и тот же каталог;
2) Запустите следующую команду:
Если он успешно выполнен, новая папка декомпиляции будет создана в той же директории-main.exe_extracted
3) Затем используйте редактор 010 или программное обеспечение winhex, чтобы открыть два файла в папке, один из которых является основным (главным здесь) файлом программы без суффикса и структурным файлом.
4) Скопируйте первые 8 байтов (magic и timestamp) в файле структуры в основной файл.Если вы используете программное обеспечение редактора 010, сначала вставьте 8 пустых байтов в начало основного файла, затем скопируйте и вставьте из файла структуры приходить.
5) Обратитесь к вышеупомянутой декомпиляцииpyc Процесс декомпилирует основной файл в файл py.
Четыре, путаница шифрования
1. Обфускация кода
Если код в определенной степени запутан, даже если автор изо всех сил пытается его увидеть, может ли он также достичь цели защиты исходного кода?
1.1 Интернет-сайт:http://pyob.oxyry.com/
инструкции
Выберите способ обфускации в раскрывающемся меню, и в нижней части есть опция: введите код в текстовое поле слева и нажмите красную кнопку выше, чтобы сгенерировать его.
объяснение
Этот метод просто заменяет переменную строкой комбинации O и 0, которую трудно прочитать напрямую, но структура кода и имя импортированного пакета не изменились. Просто замените имя переменной этой комбинации 0O, а затем отладьте или другими методами. Может понять общий процесс выполнения кода.
Может быть объединен с другими методами шифрования для увеличения сложности взлома, ха-ха.
Этот алгоритм запутывания также может быть реализован сам по себе. QAQ
1.2 Intensio-Obfuscator
Intensio-Obfuscator может напрямую преобразовывать исходный код Python и выводить запутанный код Python. Он автоматически заменяет имена переменных, имен классов и имен функций случайными символами и определяет длину, удаляет комментарии, автоматически переносит и добавляет случайные сценарии в каждую строку кода (все случайные значения различны).
Поддерживаемые версии кода файла Python: v2.x и v3.x.
Характеристики
Использование инструмента
параметр | описание |
---|---|
-h, –help | Показать меню помощи |
-f, –onefile | Укажите файл кода |
-d, –multiplefiles | Укажите несколько файлов кода (проекты) |
-i, –input | Исходный файл или каталог |
-c, –code | Язык, используемый во входном файле или каталоге, по умолчанию используется значение [python] |
-o, –output | Запутанный выходной файл или каталог |
-m, –mixer | Число / длина символов, перепутанных с выходной переменной. Значение по умолчанию: [средний], варианты: [ниже, средний, высокий] |
-r, –replace | Активировать «заменить» запутывание |
-p, –padding | Активировать функцию обфускации Fill |
-rm, –remove | Активировать «убрать» запутывание |
Примеры использования инструмента
1.3 pyminifier
1.4 Opy
1.5 pyobfuscate
pyobfuscate Это довольно старая библиотека запутывания кода Python, но она «старая и сильная».
(Одновременно может быть перепутан только один файл, кажется, что он может использоваться только для Python 2)
2. Шифрование
Пользовательский интерпретатор Python
Предположим, у нас есть алгоритм, который может зашифровать исходный код Python. Эти зашифрованные коды могут видеть все, кто имеет программу распространения, но их трудно взломать. С другой стороны, существует специальный интерпретатор Python, который может расшифровывать эти зашифрованные коды, а затем интерпретировать и выполнять их. А поскольку сам интерпретатор Python является двоичным файлом, люди не могут получить расшифрованные данные ключа от интерпретатора. Чтобы достичь цели защиты исходного кода.
Изменить код операции
На самом деле, это все еще собственный интерпретатор Python, но это относительно просто.
Оригинальное сообщение в блоге не удобно для перепечатки. Для получения подробных шагов, пожалуйста, обратитесь к другим ссылкам перепечатки:https://blog.51cto.com/juispan/2065568
Блоггер находится в среде версии 3.5.3. Я не могу нормально скомпилировать в среде 3.7. Первоначальная программа должна быть изменена. Я не провел никаких углубленных исследований, поэтому я предоставляю только идею шифрования. Если вы добились успеха, я надеюсь сообщить вам. Меры предосторожности при использовании этого метода.
PyArmor
(Платная версия 266RMB)
Инструмент для защиты сценариев Python позволяет шифровать сценарии Python, защищать код Python от утечки во время выполнения, устанавливать срок действия сценариев шифрования и привязывать сценарии шифрования к аппаратным устройствам, таким как жесткие диски и сетевые карты.
PyArmor использует механизмы динамической генерации кода и перекрестной защиты для обеспечения безопасности зашифрованных скриптов
Его защитный механизм в основном включает в себя:
Байт-код и виртуальная машина Python
Python поставляется с интерпретатором, который может использоваться в качестве REPL (цикл «чтение — вычисление — вывод»), в интерактивном режиме и в командной строке. Кроме того, можно вызвать Python со скриптами кода Python. В обоих случаях интерпретатор анализирует получаемый файл, а затем компилируется его в байт-код (низкий уровень машинных инструкций), которое затем выполняется с помощью виртуальной машины Python.
Однако он отличается от других виртуальных машин, таких как виртуальная машина Java или виртуальная машина Erlang, поэтому заслуживает самостоятельного рассмотрения. Виртуальная машина, в свою очередь, взаимодействует с операционной системой и реальным оборудованием для выполнения машинных инструкций.
.pyc файлы
Пример модуля Python, который потом будет импортирован. Данный модуль вычисляет факториал числа.
Теперь импортируем его в другом модуле, как показано ниже.
Производится импорт factorial функции из файла math_helpers.py и вызов её для вычисления факториала 6.
Запустим скрипт, вызвав python computations.py в терминале. В результате получаем не только факториал 6 (6!=720), но также замечаем, что интерпретатор автоматически создал файл math_helpers.pyc. Это происходит потому, что основной модуль импортирует math_helpers. Чтобы ускорить загрузку импортированного модуля в будущем, интерпретатор создает файл байт-кода модуля.
Оптимизатор активируется добавлением флага «-O» при вызове интерпретатора Python. Пример кода, иллюстрирующий использование оптимизации. Во-первых, у нас есть модуль, который определяет лямбду. В Python лямбда подобна функции, но определяется более кратко.
В следующем коде импортируем lambdas.py и вызовем g lambda.
Теперь перейдём к важной части этого примера. Вместо обычного вызова Python, как в последнем примере, мы будем использовать оптимизацию. Если включить оптимизатор, создаются более компактные файлы байт-кода, чем без использования оптимизатора.
Чтобы запустить пример с помощью оптимизатора, вызовем команду:
Оптимизатор удаляет операторы assert из байт-кода и всё. В большинстве случаев результат не будет заметным, но могут быть случаи, когда это может быть полезно.
Динамически подключаемые библиотеки (DLL) – это библиотеки скомпилированного кода Windows, которые подключаются к вызывающей её программе во время выполнения. Основным преимуществом таких библиотек как DLL, является то, что они облегчают повторное использование кода, позволяют строить модульные архитектуры и ускоряют запуск программ. В результате библиотеки DLL обеспечивают большую функциональность в ОС Windows.
Обратите внимание, что путь поиска для hello.pyd – это PYTHONPATH и это не тот путь, который использует Windows для поиска hello.dll.
Различия между типами файлов
Вывод
Если Python интерпретируется, что такое.файлы pyc?
9 ответов
Они содержат байт-код, для чего интерпретатор Python компилирует источник. Затем этот код выполняется виртуальной машиной Python.
документация Python объясняет определение следующим образом:
Python является интерпретируемым языком, как в отличие от скомпилированного, хотя различие может быть размытым из-за наличие компилятора байт-кода. Это означает, что исходные файлы могут быть работать напрямую без явно создание исполняемого файла, который затем бежать.
мне дали понять, что Python-это интерпретируемый язык.
вполне возможно, что a типичный печать Библии действительно будет в твердом переплете-в конце концов, это книга, которая обычно предназначена для чтения снова и снова, закладки в нескольких местах, пролистал в поисках данной главы и стиха указатели и т.д., и т.д., и хороший переплет в твердом переплете может сделать данную копию дольше при таком использовании. Однако это мирские (практические) вопросы, которые нельзя использовать для определите, является ли данный фактический объект книги копией Библии или нет: печати в мягкой обложке вполне возможны!
Итак, в этом смысле (что делают типичные реализации), Python является «интерпретируемым языком» тогда и только тогда, когда C# и Java: все они имеют типичную стратегию реализации сначала создания байт-кода, а затем его выполнения через VM/interpreter.
больше вероятность основное внимание уделяется тому, насколько «тяжелый», медленный и торжественный процесс компиляции. CPython предназначен для компиляции как можно быстрее, как можно более легкий, с как можно меньше церемоний, насколько это возможно-компилятор делает очень мало ошибок проверки и оптимизации, так что он может работать быстро и в небольших объемах памяти, что в свою очередь позволяет ему запускаться автоматически и прозрачно, когда это необходимо, без пользователя даже нужно знать, что компиляция происходит, большую часть времени. Ява и C# обычно принимает больше работы во время компиляции (и поэтому не выполняет автоматическую компиляцию), чтобы более тщательно проверять ошибки и выполнять больше оптимизаций. Это континуум серых масштабов, а не черная или белая ситуация, и было бы совершенно произвольно поставить порог на каком-то заданном уровне и сказать, что только выше этого уровня вы называете это «компиляцией»!-)
нет такой вещи, как интерпретируемый язык. Используется ли интерпретатор или компилятор-это чисто черта реализация и не имеет абсолютно никакого отношения к языку.
язык-это просто набор абстрактных математических правил. Переводчик является одной из нескольких конкретных стратегий реализации языка. Эти двое живут на совершенно разных уровнях абстракции. Если бы английский был типизированным языком, термин «интерпретируемый язык» был бы ошибкой типа. Этот утверждение «Python-интерпретируемый язык» не просто ложно (потому что ложность подразумевает, что утверждение даже имеет смысл, даже если оно неверно), оно просто не делает смысле, потому что язык может никогда определяется как » интерпретируется.»
в частности, если вы посмотрите на существующие в настоящее время реализации Python, это стратегии реализации, которые они используют:
вы можете заметить, что каждая из реализаций в этом списке (плюс некоторые другие, я не упоминание, как tinypy, Shedskin или Psyco) имеет компилятор. На самом деле, насколько я знаю, в настоящее время нет реализации Python, которая чисто интерпретируется, нет такой реализации, и такой реализации никогда не было.
не только термин » интерпретируемый язык «не имеет смысла, даже если вы интерпретируете его как» язык с интерпретируемой реализацией», это явно неверно. Кто вам сказал, что, очевидно, не знает о чем говорит о.
ЭТО ДЛЯ НАЧИНАЮЩИХ,
Python автоматически компилирует ваш скрипт в скомпилированный код, так называемый байтовый код, перед его запуском.
например, если у вас есть файл сценария abc.py который импортирует другой модуль xyz.py, когда вы бежите abc.py,xyz.пыць будет создан, так как XYZ импортируется, но никакой азбуки.файл pyc будет создано С abc.py не импортируется.
The py_compile модуль может вручную скомпилировать любой модуль. Один из способов-использовать py_compile.compile функция в этом модуле интерактивно:
вы также можете автоматически компилировать все файлы в каталоге или каталогах с помощью модуля compileall.
если имя каталога (текущий каталог в этом примере) опущено, модуль компилирует все, что найдено на sys.path
вот блок-схема, описывающая, как загружаются модули:
Python (по крайней мере, наиболее распространенная его реализация) следует шаблону компиляции исходного источника в байтовые коды, а затем интерпретации байтовых кодов на виртуальной машине. Это означает, что (опять же, наиболее распространенная реализация) не является ни чистым интерпретатором, ни чистым компилятором.
о единственный раз, когда я видел проблему с этим, когда скомпилированный файл байт-кода каким-то образом получил метку времени в будущем, что означало, что он всегда выглядел новее исходного файла. Поскольку исходный файл выглядел новее, он никогда не перекомпилировался, поэтому, какие бы изменения вы ни вносили, они игнорировались.
эта команда вызывает виртуальную машину Python. Виртуальная машина Python имеет 2 компонента: «компилятор»и » интерпретатор». Переводчик не может напрямую прочитать текст в *.py-файл, поэтому этот текст сначала преобразуется в байтовый код, который предназначен для PVM (не аппаратное обеспечение, а PVM). PVM выполняет этот байтовый код. *.пыць файл также генерируется как часть запуска, который выполняет операцию импорта файла в оболочке или в каком-либо другом файле.
Если это *.pyc-файл уже сгенерирован, а затем каждый раз, когда вы запускаете / выполняете свой *.py файл, система напрямую загружает ваш *.pyc-файл, который не нуждается в компиляции (это сэкономит вам несколько циклов процессора).
после того, как *.pyc файл генерируется, нет необходимости в *.py-файл, если вы его не отредактируете.