Файлы с байткодом действительно создаются только для импортированных модулей? ⇐ Python
Файлы с байткодом действительно создаются только для импортированных модулей?
В моей системе я создал приложение Python, состоящее из нескольких файлов. Структура каталогов приложения следующая:
каталог_приложения |- файл_a.py |- файл_b.py |- файл_c.py Внутри скрипта file_c.py присутствуют следующие импорты:
импортировать file_a из file_b импортировать ClassB Когда я выполняю скрипт file_c.py из командной строки:
python3 file_c.py в папке application_folder создается каталог с именем __pycache__, и внутри него я нахожу два файла, содержащие байт-код Python и называемые:
__pycache__/file_a.cpython-310.pyc __pycache__/file_b.cpython-310.pyc Примечание. Я прочитал эту и другую ссылку, чтобы получить информацию о концепциях компиляции в Python, байт-коде и интерпретаторе Python как виртуальной машины.
Чтобы понять, почему создаются эти файлы, я много искал и нашел много ссылок по этой теме. Наиболее ясным может быть этот ответ, который кажется идеальным для понимания того, что происходит в моем контексте.
В ответе присутствует следующее предложение:
Запуск скрипта не считается импортом, и .pyc не будет создан.
Так вот я и спрашиваю: только для импортированных модулей создается файл с байткодом? Почему существует такая разница в управлении импортированными модулями и неимпортированными скриптами?
ИЗМЕНИТЬ Я нашел этот другой ответ очень полезным, чтобы лучше понять, как работает CPython, концепция байт-кода и файл .pyc, сохраненный на жестком диске.
В моей системе я создал приложение Python, состоящее из нескольких файлов. Структура каталогов приложения следующая:
каталог_приложения |- файл_a.py |- файл_b.py |- файл_c.py Внутри скрипта file_c.py присутствуют следующие импорты:
импортировать file_a из file_b импортировать ClassB Когда я выполняю скрипт file_c.py из командной строки:
python3 file_c.py в папке application_folder создается каталог с именем __pycache__, и внутри него я нахожу два файла, содержащие байт-код Python и называемые:
__pycache__/file_a.cpython-310.pyc __pycache__/file_b.cpython-310.pyc Примечание. Я прочитал эту и другую ссылку, чтобы получить информацию о концепциях компиляции в Python, байт-коде и интерпретаторе Python как виртуальной машины.
Чтобы понять, почему создаются эти файлы, я много искал и нашел много ссылок по этой теме. Наиболее ясным может быть этот ответ, который кажется идеальным для понимания того, что происходит в моем контексте.
В ответе присутствует следующее предложение:
Запуск скрипта не считается импортом, и .pyc не будет создан.
Так вот я и спрашиваю: только для импортированных модулей создается файл с байткодом? Почему существует такая разница в управлении импортированными модулями и неимпортированными скриптами?
ИЗМЕНИТЬ Я нашел этот другой ответ очень полезным, чтобы лучше понять, как работает CPython, концепция байт-кода и файл .pyc, сохраненный на жестком диске.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как я могу заставить Python ScriptEngine очистить кеш импортированных модулей?
Anonymous » » в форуме JAVA - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как я могу заставить Python ScriptEngine очистить кеш импортированных модулей?
Anonymous » » в форуме Python - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-