Что означают расширения файлов python, .pyc .pyd .pyo?

Что означают эти расширения файлов python?

  • .pyc
  • .pyd
  • .pyo

Каковы различия между ними и как они генерируются из файла * .py?

2 Solutions collect form web for “Что означают расширения файлов python, .pyc .pyd .pyo?”

  1. .py : Обычно это исходный код ввода, который вы написали.
  2. .pyc : Это скомпилированный байт-код. Если вы импортируете модуль, python будет создавать файл *.pyc , содержащий байт-код, чтобы впоследствии импортировать его позже (и быстрее).
  3. .pyo : Это файл *.pyc который был создан во время оптимизации ( -O ).
  4. .pyd : Это в основном файл dll Windows. http://docs.python.org/faq/windows.html#is-a-pyd-file-the-same-as-a-dll

Также для некоторого дальнейшего обсуждения .pyc vs .pyo , посмотрите: http://www.network-theory.co.uk/docs/pytut/CompiledPythonfiles.html (я скопировал важную часть ниже)

  • Когда интерпретатор Python вызывается с флагом -O, оптимизированный код генерируется и сохраняется в файлах «.pyo». Оптимизатор в настоящее время мало помогает; он удаляет только утверждения assert. Когда используется -O, весь байт-код оптимизирован; .pyc игнорируются и файлы .py скомпилированы для оптимизации байт-кода.
  • Передача двух-O-флагов интерпретатору Python (-OO) заставит компилятор байт-кода выполнить оптимизацию, которая в некоторых редких случаях может привести к сбоям в работе программ. В настоящее время только строки __doc__ удаляются из байт-кода, что приводит к более компактным файлам «.pyo». Поскольку некоторые программы могут полагаться на их доступность, вы должны использовать этот параметр только в том случае, если знаете, что делаете.
  • Программа не работает быстрее, когда она считывается из файла «.pyc» или «.pyo», чем когда она считывается из файла «.py»; единственное, что быстрее в файлах «.pyc» или «.pyo» – это скорость, с которой они загружаются.
  • Когда скрипт запускается, указывая его имя в командной строке, байт-код для скрипта никогда не записывается в файл «.pyc» или «.pyo». Таким образом, время запуска скрипта может быть уменьшено путем перемещения большей части его кода в модуль и наличия небольшого сценария начальной загрузки, который импортирует этот модуль. Также можно указать файл «.pyc» или «.pyo» непосредственно в командной строке.

.py – Обычные скрипты
.py3 – (редко используется) скрипт Python3. Обычно скрипты Python3 заканчиваются словами «.py», а не «.py3», но я видел это несколько раз
.pyc – скомпилированный скрипт (Bytecode)
.pyo – оптимизированный файл pyc (с Python3.5, Python будет использовать только pyc, а не pyo и pyc)
.pyw – скрипт Python для Windows. Он выполняется с помощью pythonw.exe
.pyx – Cython src преобразуется в C / C ++
.pyd – скрипт Python, созданный как Windows DLL
.pxd – скрипт Cython, который эквивалентен заголовку C / C ++
.pxi – MyPy заглушка
.pyi – файл- заглушка ( PEP 484 )
.pyz – Архив скриптов Python ( PEP 441 ); это скрипт, содержащий сжатые скрипты Python (ZIP) в двоичной форме после стандартного заголовка сценария Python
.pywz – архив сценариев Python для MS-Windows ( PEP 441 ); это скрипт, содержащий сжатые скрипты Python (ZIP) в двоичной форме после стандартного заголовка сценария Python
.py [cod] – обозначение подстановки в «.gitignore», что означает, что файл может быть «.pyc», «.pyo» или «.pyd».

Более подробный список дополнительных расширений файлов Python (в основном редких и неофициальных) можно найти по адресу http://dcjtech.info/topic/python-file-extensions/

  • Как создать фильтр «ИЛИ» с помощью elasticsearch-dsl-py?
  • Создать пустой файл с помощью python
  • python - open () не работает с именами путей
  • Итерация по списку словарей
  • Не удается остановить веб-сервер в Google App Engine Launcher
  • Создание лямбда внутри цикла
  • Разделение столбцов файлов данных на отдельные массивы в Python
  • Динамически вызывающие функции - Python
  • Невозможно изменить класс экземпляра frontend в приложении appengine.
  • Python Список словарей Sum
  • Как получить доступ к глобальной переменной внутри класса в Python
  • Python - лучший язык программирования в мире.