Найти - Пользователи
Полная версия: Получить масив модулей пакета
Начало » Python для экспертов » Получить масив модулей пакета
1
agryn
Есть пакет (директория paket c файлами например __init__, file1.py, file2.py. file3.py). Нужно получить массив с ссылками на импортированные модули.
Попробовал такой вариант:
import paket
package_name_list = [attr for attr in dir(paket) if not attr.startswith('__')]
package_list = []
for package_name in package_name_list:
    package_list.append(getattr(paket, package_name))
Но какойто он глючный (первый раз все сработало а потом почемуто перестало работать - возввращает пустой список).
ilnur
вроде все работает.
agryn
Есть пакет (директория paket c файлами например __init__, file1.py, file2.py. file3.py)
просто __init__ или __init__.py?
agryn
ilnur
__init__.py
agryn
Кому интересно такой вариант заработал стабильно:
import os
import resources
import importlib
package_name_list = [attr[:-3] for attr in os.listdir(os.path.dirname(resources.__file__)) if not attr.startswith('__') and attr.endswith('.py')]
package_list = []
for package_name in package_name_list:
    package_list.append(importlib.import_module(resources.__name__ + '.' + package_name))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB