Чтобы позволить мне иметь ясную структуру в моем проекте, я использую следующий фрагмент кода для динамического добавления основной папки проекта в PYTHONPATH и, следовательно, гарантирую, что я могу импортировать файлы даже сверху расположение файлов.Динамическое обновление PYTHONPATH предотвращает обновление .pyc
import sys
import os
sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(__file__)), "."))
Так как я сделал это, когда я начинаю свой основной файл, изменения в модулях не распознаются больше, пока я вручную удалить любые .pyc файлы. Таким образом, я предполагаю, что это почему-то помешало python проверить, обновлены ли файлы pyc. Могу ли я преодолеть эту проблему?
Я попробую это, если там не какой-нибудь более элегантное решение. Хотя я хотел бы понять, почему это происходит. – weidler
'sys.modules' содержит модули, которые были загружены интерпретатором. Если вы модифицируете PYTHONPATH, а некоторые новые модули переопределит то, что уже было там, то новые изменения не будут видны - возможно. Вы все равно не должны использовать магию. Просто установите PYTHONPATH как можно выше в иерархии файлов и сделайте это. Кроме того, вы должны использовать virtualenv для установки как вашего проекта, так и других зависимостей, а также точек установки setup.py для более сложных вещей. У вас есть проект, который вырос из простого сценария, и вы никогда не реорганизовали его? –