Время от времени я сталкиваюсь с очень трудной для отладки проблемой: где-то в моем $PYTHONPATH есть оставшийся файл .pyc, а соответствующий файл .py был перемещен в другое место, которое находится позже в $PYTHONPATH, поэтому, когда я пытаюсь для импорта модуля используется «осиротевший» файл .pyc, и все изменения в «настоящем» файле .py игнорируются, что оставляет меня в невероятном замешательстве, пока я не выясню, что происходит.
Есть ли способ заставить python не использовать «осиротевшие» файлы .pyc или выводить предупреждение при их использовании?
В качестве альтернативы, означает ли тот факт, что у меня есть эта проблема, что я делать что-то не так, и если да, то что?
find * -name '*.pyc' | xargs rm -f
. Примечание 1. Я используюfind *
, а неfind .
, чтобы .git и т. д. не искались, 2. Я удаляю все файлы pyc, поскольку python, похоже, только проверяет, что исходный код старше, чем скомпилированные файлы, а не точно соответствует времени мода (поскольку это не соответствует mtime при создании файлов pyc - по крайней мере, под Linux). - person iheggie   schedule 21.11.2014find . -name '*pyc' -delete
- видимоfind
стоит флаг удаления найденных файлов - person vlad-ardelean   schedule 06.05.2015