Файлы Python .pyc создаются при импорте модуля, а не при запуске скрипта верхнего уровня. Я не уверен, что вы имеете в виду, позвонив, но если вы запустили свой мастер-скрипт из командной строки и импортировали другой скрипт, то только импортированный получает .pyc.
Что касается дистрибутива .pyc-файлов, то они относятся к незначительной версии. Если вы соберете свой собственный питон или распределите несколько уязвимых файлов на основе python, то, возможно. Но лучше всего распространять файлы .py.
Правила скрипта и модуля Python кажутся немного странными, пока вы не рассмотрите его модель установки. Общей моделью установки является то, что исполняемые файлы устанавливаются где-то в системе PATH
, а разделяемые библиотеки устанавливаются где-то в пути библиотеки.
Python's setup.py
делает то же самое. Скрипты верхнего уровня идут в PATH, но модули и пакеты идут по пути библиотеки. Например, в моей системе pdb3
(сценарий верхнего уровня) находится на /usr/bin/pdb3
и os
(импортированный модуль) на /usr/lib/python3.4/os.py
. Предположим, что python скомпилирован pdb3
в pdb3.pyc
. Ну, я все равно звоню pdb3
, а .pyc бесполезен. Так зачем загромождать путь?
Его общий для установки для запуска с правами администратора или администратора, чтобы у вас был доступ на запись по этим путям. Но у вас не будет доступа к ним позже, как обычный пользователь. Вы можете создать setup.py
.pyc-файлы во время установки. Вы получаете правильные файлы .pyc для любого python, который у вас есть, и поскольку вы используете root/admin во время установки, у вас все еще есть доступ к каталогам. Попытка создания файлов .pyc позже является проблемой, поскольку обычный пользователь не имеет доступа к каталогам.
Итак, лучше всего распространять .py файлы и setup.py создать .pyc во время установки.
Если вы хотите отредактировать или отладить код, вам понадобится '.py'. См. Http://stackoverflow.com/questions/3878479/why-are-main-runnable-python-scripts-not-compiled-to-pyc-files-like-modules для вашего второго вопроса. – AChampion
Итак, '.py' - это главный файл, и' .pyc' всегда может быть восстановлен из него? – joechoj
'.pyc' - это скомпилированный файл (из' .py', который содержит исходный код), он содержит байтовый код – Khaled