#python #import #module #python-importlib #import-module
Вопрос:
Я обновляю свой код, чтобы включить инструкции Try and Except, чтобы сделать его более надежным. Моя текущая реализация-это множество отдельных инструкций try и except, каждая из которых содержит отдельные инструкции импорта:
try:
from Helpers import editorfunctions
except Exception as e:
print(e)
print(sys.exc_info())
try:
from Helpers import datamanipulation
except Exception as e:
print(e)
print(sys.exc_info())
try:
from DefaultFolderStructure import defaultfolderstructure
except Exception as e:
print(e)
print(sys.exc_info())
Это довольно запутанно, и я хочу переформатировать это так, чтобы это был цикл, который проходит через список — что-то вроде этого:
libs = ['Helpers.editorfunctions', 'Helpers.datamanipulation', "DefaultFolderStructure.defaultfolderstructure"]
for lib in libs:
try:
lib = import_module(lib)
except:
print(sys.exc_info())
Текущий код sudo выше не работает, мне интересно, как я могу заставить его работать?
Все модули, которые я импортирую, находятся в дочерних папках текущего каталога.
Я пробовал использовать sys.path.append («..»), чтобы module_import() мог найти пакет и импортировать модули из списка, но я знаю, что мне чего-то не хватает!. Любая помощь была бы очень признательна, спасибо.
Комментарии:
1. Будет ли ваш код по-прежнему работать, если эти модули отсутствуют, и вы поймали ошибки импорта? Если нет, то вы повторно пытаетесь/перехватываете, так как эти ошибки уже будут распечатаны, если модуль отсутствует во время выполнения.
2. @Stephen Да, мой код все равно будет работать, если модуль отсутствует или есть ошибка. Я только что протестировал его, введя синтаксическую ошибку, и остальная часть импорта все еще работала. Таким образом, этот метод должен работать, если я импортирую из списка или использую свою текущую реализацию.
3. Вы сказали, что использование
importlib.__import__(name)
не работает. Покажите нам, что вы пробовали, потому что это должно сработать.4. Извините за поздний ответ. Вот мой текущий код — я получаю неопределенную ошибку модуля после его запуска. ‘импорт sys импорт importlib sys.path.добавить(«..») библиотеки = [‘Помощники.функции редактирования’, ‘Помощники.обработка данных’] для библиотеки в библиотеках: попробуйте: lib = importlib.__импорт__(lib) за исключением: печать(sys.exc_info()) ‘