Код Python на мгновение работает только при изменении файлов pyc
У меня очень странная проблема. Я изменил немного кода Python с одной ревизии на другую, и это, казалось, нарушало код (несмотря на прохождение тестов). Когда я пошел и добавил оператор отладки, код начал работать нормально. Попытка сделать это снова провалилась. После экспериментов я понял, что он будет работать на одном прогоне только после изменения или удаления файла pyc. Какие?? Кто-нибудь еще испытывал это? Есть идеи, чтобы это исправить?
tldr: код работает только сразу после изменения или удаления pyc, а затем перестает работать.
РЕДАКТИРОВАТЬ: Кажется, проблема сама по себе файл pyc. Я скомпилировал файлы pyc без запуска кода и попытался запустить его, но он не сработал. Я провел некоторое исследование и думаю, что Python создает эти pyc так, что когда я пытаюсь запустить их, он загружает их в среду, а затем создает pyc. Это означает, что он работает, когда загружается из источника, но не работает при загрузке из pyc.
1 ответ
Возможно, ваш файл PYC обновляется с помощью некоторой синхронизации, записанной после его компиляции, затем python запускает PYC вместо перекомпиляции PY.
Попробуй это:
>python --help
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-B : don't write .py[co] files on import; also PYTHONDONTWRITEBYTECODE=x