Python не загружает доступный файл .pyc из __pycache__Python

Программы на Python
Ответить
Anonymous
 Python не загружает доступный файл .pyc из __pycache__

Сообщение Anonymous »

До сих пор мне никогда не требовались кэшированные файлы .pyc, но теперь я обнаружил, что они не работают. У меня есть простой механизм, например, скрипт верхнего уровня mainscript.py:

Код: Выделить всё

import mymodule
mymodule.main()
и файл mymodule.py с некоторыми функциями:

Код: Выделить всё

def main():
# do stuff
когда я запускаю python mainscript.py, компиляция занимает около двух секунд, затем он запускается, и существует каталог __pycache__, содержащий mymodule.cpython-39.pyc
Однако, когда я теперь повторяю python mainscript.py, происходит та же задержка при компиляции, но файл .pyc в __pycache__ не обновляется до нового временная метка. Насколько я понимаю, доступный файл .pyc в __pycache__ должен автоматически обнаруживаться и импортироваться, экономя две секунды времени компиляции. Но, видимо, я не получаю такой экономии.
По данным чата, нужно проверить около 5 вещей:
  • Удалите параметр -B и отключите PYTHONDONTWRITEBYTECODE (во-первых, я никогда не использовал -B)
  • Удалите устаревшие или поврежденные файлы .pyc (я выполнил rm -rf __pycache__)
  • Запускайте Python из файла .py вместо интерактивного режима (никогда не запускался в интерактивном режиме)
  • Проверьте права доступа к файлам (все они установлены по умолчанию, выполните команду chmod -R) 755, в любом случае, никакого эффекта)
  • Принудительная компиляция перед импортом (для этого я использовал модуль py_compile, без изменений)
Я проверил все вышеперечисленное, и ни одно из них не является ответом. Это материал Python 101, проще простого быть не может, но почему-то я его просто не вижу (как и чатгпт).

Подробнее здесь: https://stackoverflow.com/questions/791 ... om-pycache
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»