Що означають ці розширення файлів python?
- .pyc
- .pyd
- .pyo
Які відмінності між ними і як вони генеруються з файлу * .py?
Що означають ці розширення файлів python?
Які відмінності між ними і як вони генеруються з файлу * .py?
Відповіді:
.py: Зазвичай це вхідний вихідний код, який ви написали..pyc: Це компільований байт-код. Якщо ви імпортуєте модуль, python створить *.pycфайл, що містить байт-код, щоб зробити його імпорт знову легшим (і швидшим)..pyo: Це був формат файлів, який використовувався до Python 3.5 для *.pycфайлів, створених з -Oпрапором оптимізації ( ). (див. примітку нижче).pyd: Це в основному файл DLL Windows. http://docs.python.org/faq/windows.html#is-a-pyd-file-the-same-as-a-dllТакож для подальшої дискусії щодо .pycvs .pyoпогляньте на сторінку: http://www.network-theory.co.uk/docs/pytut/CompiledPythonfiles.html (я скопіював важливу частину нижче)
- Коли інтерпретатор Python викликається прапором -O, оптимізований код генерується та зберігається у файлах '.pyo'. Зараз оптимізатор не дуже допомагає; він видаляє лише заяви твердження. Коли використовується -O, оптимізується весь байт-код; .pyc файли ігноруються, а .py файли збираються для оптимізованого байт-коду.
- Передача двох-прапорів на інтерпретатор Python (-OO) призведе до того, що компілятор байт-кодів здійснить оптимізацію, яка в деяких рідкісних випадках може призвести до несправних програм. Наразі
__doc__з байт-коду видаляються лише рядки, що призводить до отримання більш компактних файлів '.pyo'. Оскільки деякі програми можуть розраховувати на доступність їх, вам слід використовувати цю опцію лише тоді, коли ви знаєте, що робите.- Програма не запускається швидше, коли вона читається з файлу '.pyc' або '.pyo', ніж коли вона читається з файлу '.py'; єдине, що швидше стосується файлів '.pyc' або '.pyo', - це швидкість, з якою вони завантажуються.
- Коли сценарій запускається, вказуючи своє ім'я в командному рядку, байт-код цього сценарію ніколи не записується у файл '.pyc' або '.pyo'. Таким чином, час запуску сценарію може бути скорочено, переміщуючи більшу частину його коду до модуля та маючи невеликий сценарій завантаження, який імпортує цей модуль. Також можна вказати файл '.pyc' або '.pyo' безпосередньо в командному рядку.
Примітка:
15.09.2015 р. Випуск Python 3.5 реалізував PEP-488 та ліквідував .pyoфайли. Це означає, що .pycфайли представляють як неоптимізований, так і оптимізований байт-код.
def f(x): assert(x**5 == x*x*x*x*x); return x; import timeit; print(timeit.repeat("for x in range(100): f(x)", "from __main__ import f", number=10000));
.pyoфайлів. Навіть оптимізований байт-код закінчується .pycрозширенням Python 3.5.
sys.path. Див. siteМодуль.Більший список додаткових розширень файлів Python (здебільшого рідкісних та неофіційних) можна знайти на веб- сайті http://dcjtech.info/topic/python-file-extensions/
.pthфайли.