Как перезагрузить модуль в консоли Python? - PullRequest
0 голосов
/ 11 января 2019

Я использую PyCharm с Python 3.7. В моей консоли Python, как я могу перезагрузить модуль, который я изменил? Я создал файл «services.py», где создал класс обслуживания в

class ArticlesService:
    def process(self):

Пока я тестирую это в консоли, я не могу понять, как его перезагрузить. Это ошибка, которую я получаю

from mainpage.services import ArticlesService
importlib.reload(ArticlesService)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/__init__.py", line 140, in reload
    raise TypeError("reload() argument must be a module")
TypeError: reload() argument must be a module

Как мне обратиться к моему классу, чтобы перезагрузить его? (Или еще лучше, как заставить консоль автоматически перезагружать все, что я изменил?)

1 Ответ

0 голосов
/ 13 января 2019

from mainpage.services import ArticlesService только импортирует класс в ваше пространство имен, поэтому у вас нет ссылки на модуль в пространстве имен. Из importlib.reload документов:

Перезагрузить ранее импортированный модуль . Аргумент должен быть объектом модуля, поэтому он должен быть успешно импортирован раньше.

Поэтому обязательно импортируйте модуль, если вы хотите перезагрузить его позже:

import importlib
import mainpage
from mainpage.services import ArticlesService

...

importlib.reload(mainpage)

Это также должно работать:

import importlib
import mainpage.services
from mainpage.services import ArticlesService

...

importlib.reload(mainpage.services)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...