Имя re не определено, хотя re импортируется в модуль и в основной код - PullRequest
0 голосов
/ 27 марта 2020

Я работаю над тетрадью Jupyter для моей магистерской работы, и я бы хотел, чтобы она была чистой. Я использую множество функций для назначения категорий группам данных. Поэтому я решил поместить все эти функции в модуль functions.py, который я импортирую в начале своего ноутбука. Мой блокнот имеет следующий импорт:

import sys
sys.path.append('../src/') # ugly hack to be able to import the functions module
import re
import numpy as np
import pandas as pd
import seaborn as sns
import functions as fn

Одна из моих функций использует модуль re для сопоставления строк с регулярным выражением. Когда я вызвал упомянутую функцию, я получил NameError: ("name 're' is not defined", 'occurred at index 0'), поэтому я решил, что мне нужно import re в начале моего файла functions.py. Это ничего не изменило. Поэтому я даже попытался поместить import re в тело функции, но это тоже не сработало бы.

Я абсолютно не знаю, почему re не работает, несмотря на попытки импортировать его везде.

Примечание: мои функции работали правильно, когда я определял и использовал их из записной книжки, поэтому я точно знаю, что это не ошибка в моей функции.

1 Ответ

0 голосов
/ 27 марта 2020

Решил мою собственную проблему, ответ глупо прост: Jupyter не учитывает изменения в импортированном модуле, даже если вы импортируете его заново. Если вы вносите какие-либо изменения в модуль, вы должны закрыть ядро ​​и перезапустить его, импортировать снова, и изменения будут работать.

В моем конкретном случае я добавил import re в мои functions.py, но Jupyter не принимал это во внимание, пока я не перезапустил ядро.

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