Что означают расширения файлов Python, .pyc .pyd .pyo? - PullRequest
397 голосов
/ 11 января 2012

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

  • .pyc
  • .pyd
  • .pyo

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

Ответы [ 2 ]

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

Также для дальнейшего обсуждения .pyc против .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» непосредственно в командной строке.
210 голосов
/ 03 августа 2013
  • .py - Обычный скрипт
  • .py3 - (редко используется) скрипт Python3. Сценарии Python3 обычно заканчиваются на «.py», а не «.py3», но я видел это несколько раз
  • .pyc - скомпилированный скрипт (байт-код)
  • .pyo - оптимизированный файл pyc (Начиная с Python3.5, Python будет использовать только pyc, а не pyo и pyc)
  • .pyw - скрипт Python для запуска в оконном режиме без консоли; выполняется с 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/

...