TL; DR
Если вы переключаетесь между 3.6.6 и 3.7.0 до принятия 3.7.0, это не проблема, два набора pyc-файлов будут сожительствовать, и вы будете в порядке.
Что если вы переключаетесь между 3.6.4 и 3.6.6? Вам нужно удалить файлы pyc?
Длинная версия
Я вижу, что файлы pyc предназначены только для основных выпусков. Например у меня есть:
__init__.cpython-36.pyc
__init__.cpython-37.pyc
, который предположительно является результатом PEP 3147 .
И так, это достаточно ясно. Если я буду двигаться вперед и назад во время разработки между виртуальными средами, скажем, в 3.6.6 и 3.7.0, это не будет проблемой. Две версии будут сожительствовать в каталоге __pycache__
, поскольку они идентифицируются по основному номеру версии.
Вопрос : Как насчет переключения туда и обратно между, скажем, 3.6.4 и 3.6.6, действительно ли мне нужно удалять файлы pyc при переключении с одной версии на другую в тот же основной выпуск?
Мотивация на вопрос
Причина, по которой мне нужно было переключать виртуальные среды, заключается в том, что я думал, что мой код работает нормально с некоторыми версиями Python 3, но не с другими. Я получал множество
ImportError: No module named XYZ
ошибки.
Но когда я уничтожаю все pyc-файлы и устанавливаю одну версию Python или другую, настраиваем виртуальную среду
~/venv-362
~/venv-364
~/venv-366
~/venv-370
тогда все хорошо и код работает нормально.