Пользовательский модуль не может найти переменные и модули верхнего уровня - PullRequest
0 голосов
/ 09 марта 2019

У меня есть пользовательский модуль (называемый test.py):

def getLastDate(currDt):
    prevDt = (currDt - dt.timedelta(days=1))
    return prevDt

Я пытаюсь вызвать его из другого скрипта Python:

import datetime as dt
import test
currDt = dt.date.today()
print(test.getLastDate(currDt))

Проблема в том,что, когда я запускаю его, его область действия такова, что внутренний модуль (test.py) не может найти модуль dt и выдает следующую ошибку:

      1 def getLastDate(currDt):
----> 2     prevDt = (currDt - dt.timedelta(days=1))
      3     return prevDt

NameError: name 'dt' is not defined

Нужно ли перезагрузить модуль datetimeв моем модуле test.py?Мне это не кажется правильным.

Заранее благодарю за помощь.

Ответы [ 2 ]

0 голосов
/ 09 марта 2019

Да, как написано, вам нужно импортировать datetime в test.py.

Если вы хотите избежать импорта datetime дважды, вы можете просто импортировать его в test.py и переписать вашу функцию, например:

def getLastDate(currDt, delta):
    prevDt = (currDt - dt.timedelta(days=delta))
    return prevDt
0 голосов
/ 09 марта 2019

Вам необходимо импортировать dt также в файл test.py

#test.py
import datetime as dt
def getLastDate(currDt):
    prevDt = (currDt - dt.timedelta(days=1))
    return prevDt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...