У меня есть вызываемый модуль imtools.py
, который содержит следующую функцию:
import os
def get_imlist(path):
return[os.path.join(path,f) for f in os.listdir(path) if f.endswith('.jpg')]
Когда я пытаюсь вызвать функцию get_imlist
из консоли с помощью import imtools
и imtools.get_imlist(path)
, я получаю следующую ошибку:
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:\...\PycharmProjects\first\imtools.py", line 5, in get_imlist
NameError: name 'os' is not defined
Я новичок в Python, и мне здесь не хватает чего-то простого, но я не могу понять это. Если я определяю функцию на консоли, она работает нормально. Конкретная история скрипта этого модуля такова: изначально он был написан без import os
оператора, затем, увидев ошибку выше, import os
оператор был добавлен в скрипт и пересохранен. Один и тот же сеанс консоли использовался для запуска скрипта до и после сохранения.
Решение проблемы
Основываясь на небольших подсказках, я собираюсь предположить, что в вашем коде изначально не было этой import os
строки, но вы исправили это в исходном коде и повторно импортировали файл.
Проблема в том, что Python кэширует модули. Если вы import
неоднократно, каждый раз получаете один и тот же модуль - он не перечитывается. Ошибка, которую вы допустили при первом импорте, сохранится.
Для повторного импорта imtools.py
файла после редактирования необходимо использовать reload(imtools)
.
Комментариев нет:
Отправить комментарий