Python - модуль импорта с использованием переменной - PullRequest
0 голосов
/ 24 сентября 2018

Мой проект имеет структуру ниже.

myapp/
    pack1/
        module1.py
        module1.py
     pack2/
        module3.py
        module4.py 
        .
        .
        moduleN.py
    foo.py
    bar.py

Я хочу импортировать модуль из pack2, и мой текущий рабочий файл - pack1 / module1.py.

pack2 будет иметь много модулей, и мне нужно получить их с помощью переменной.

я пробовал exec('from pack2 import module3') и module = importlib.import_module(self.pack2, package=None)..

Мой код,

class ParseData:
    def __init__(self, page_res, domain):
       self.page_response = page_res
       self.domain_ = domain

    def listing_details(self):
        import importlib
        module = importlib.import_module(self.domain_, package=None)
        from module import listing_page

Я получил ошибку,

    Traceback (most recent call last):
  File "D:/LRI/sample_parser.py", line 16, in <module>
    get_listing_data(js)
  File "D:/LRI/sample_parser.py", line 7, in get_listing_data
    webPage.listing_details()
  File "D:\LRI\geoScraper\parser_module.py", line 12, in listing_details
    from module import listing_page
ImportError: No module named 'module'

Хотя они, кажется, работают, я не мог найти способ получить доступ к импортированному модулю дальше.

Любое руководство может мне помочь.Заранее спасибо.

1 Ответ

0 голосов
/ 24 сентября 2018

После суммирования всех ответов и моих попыток, наконец, это сработало для меня.

domain = __import__(domain) 
func = getattr(domain, 'check')

И мне пришлось изменить структуру файла следующим образом:

myapp/
    pack1/
        module1.py
        module1.py
    module3.py
    module4.py 
    .
    .
    moduleN.py
    foo.py
    bar.py
...