Я создаю модуль сеялки данных, который ищет все модели, используя интроспекцию и модуль inspect
. Я индексирую модели, которые я нашел в строке, похожей на module.model_name
потому что в разных модулях может быть больше модулей с одинаковым именем.
Проблема в том, что module
иногда является правильным именем модуля, но иногда он __main__
, вероятно, потому, что этот конкретный модуль был первым, который вызывался для обработки URL-адреса после запуска экземпляра. В любом случае я могу избежать этого, возможно, заставляя конкретный модуль всегда быть __main__
?
Эти проблемы ухудшаются, когда я запускаю сразу несколько экземпляров, потому что я также получаю противоречивые данные между экземплярами, каждый из которых имеет другой модуль __main__
.
благодаря
каждая запись script
в вашем app.yaml
будет выполнена как модуль __main__
. Если вам нужен только один __main__
вам нужно запустить все через одну точку входа и отобразить все через один экземпляр WSGIApplication
.
script
так как некоторые из них являются сторонними библиотеками.
__main__
одновременно - тот, который был вызван для этого запроса. Если ваш код всегда вызывается одним и тем же модулем, вы должны знать, что это за модуль. Если нет, существуют различные хаки, которые вы можете использовать, чтобы выяснить, что это такое, например, проверка стека.