Если вы хотите оптимизировать, не импортируя вещи дважды, избавьте себя от хлопот, потому что Python уже позаботился об этом.
Если вам нужно , чтобы избежать NameErrors
или чего-то еще: исправьте неаккуратное кодирование - убедитесь, что вам это не нужно, т.е. определите (импортируйте) все, прежде чем использовать его (в случае если импортирует: один раз, при запуске, на уровне модуля).
Если у вас есть веская причина: sys.modules
- это словарь, содержащий все модули, уже импортированные куда-либо. Но он содержит только модули, и из-за того, что from <module> import <variable>
работает (импортируйте весь модуль как обычно, извлеките из него все, что вы импортируете), from sys import path
только добавит sys
к sys.modules
(если это не так) т уже импортируется при запуске). from pkg import module
добавляет pkg.module
, как вы, вероятно, ожидаете.