Импортировать папку модулей в Python

Возможно ли в python получить список модулей из папки / пакета и импортировать их?

Я хотел бы иметь возможность сделать это из функции внутри класса, чтобы весь класс имел к ним доступ (возможно, это был метод __init__ ).

Любая помощь будет принята с благодарностью.

3 Solutions collect form web for “Импортировать папку модулей в Python”

См. Документ модулей .

Единственное решение для автора пакета – предоставить явный индекс пакета. Оператор import использует следующее соглашение: если код __init__.py пакета определяет список с именем __all__ , он считается списком имен модулей, которые должны быть импортированы, когда из импорта пакета * встречается. Автору пакета рекомендуется сохранить этот список в актуальном состоянии при выпуске новой версии пакета. Авторы пакета могут также решить не поддерживать его, если они не видят использования для импорта * из своего пакета. Например, файл sound / effects / __init__.py может содержать следующий код:

 __all__ = ["echo", "surround", "reverse"] 

Это означало бы, что из sound.effects import * будет импортировать три названных подмодуля звукового пакета.

Да, вы могли бы найти способ сделать это, выполнив список каталогов для файлов в каталоге и импортировав их вручную. Но нет встроенного синтаксиса для того, что вы просите.

Вы можете узнать список модулей с функцией dir

 import module dir (module) 

Позже в программе вы можете импортировать одну функцию:

 from module import function 

distribute модуль предоставляет механизм, который делает большую часть этого. Во-первых, вы можете начать с перечисления файлов python в пакете с помощью pkg_resources.resource_listdir :

 >>> module_names = set(os.path.splitext(r)[0] ... for r ... in pkg_resources.resource_listdir("sqlalchemy", "/") ... if os.path.splitext(r)[1] in ('.py', '.pyc', '.pyo', '') ... ) - set(('__init__',)) >>> module_names set(['engine', 'util', 'exc', 'pool', 'processors', 'interfaces', 'databases', 'ext', 'topological', 'queue', 'test', 'connectors', 'orm', 'log', 'dialects', 'sql', 'types', 'schema']) 

Затем вы можете импортировать каждый модуль в цикл:

 modules = {} for module in module_names: modules[module] = __import__('.'.join('sqlalchemy', module)) 
  • Нужен модуль python для создания текстовых документов
  • Зависимость модуля Python
  • Не удалось использовать easy_install для установки модулей Python
  • Как получить все экземпляры класса в текущем модуле
  • В Python, как вы изменяете экземпляр объекта после перезагрузки?
  • глобальная переменная, определенная в основном скрипте, не может быть доступна функцией, определенной в другом модуле
  • Можете ли вы определить псевдонимы для импортированных модулей в Python?
  • Вложение Python в C: проблемы с импортом локальных модулей
  •  
    Interesting Posts for Van-Lav

    Как сохранить заголовки столбцов кадра данных после предварительной обработки в scikit-learn

    Компактный способ присвоения значений списком разрезов в Python

    после взлома

    Что такое Pythonic и эффективный способ разделить список на соответствующий элемент?

    Какие символы Unicode принимаются в именах переменных Python3?

    Как кэшировать вызовы API Django Rest Framework?

    Проблема импорта в режиме Python

    Нарезка массива numpy вдоль динамически заданной оси

    Anaconda Python: как установить отсутствующую зависимость?

    «Неизвестное расширение» в функции сохранения PIL из-за пустого массива EXTENSION

    Как написать смарт-карту с помощью pyscard

    Как настроить файл требований.txt для нескольких сред?

    Самая быстрая метрика расстояния в пути в python

    запускать интерпретатор командной строки python с автоматическим загрузкой импорта

    Django не запускается с ошибкой wierd. Объект 'AttributeError:' module 'не имеет атрибута' getargspec ''

    Python - лучший язык программирования в мире.