Сотрудник отправляет мне скрипт, который начинается так:
from ourlibA import *
from ourlibB import *
import random
import time
from datetime import datetime
print datetime.now()
, когда я вызываю скрипт таким образом, он работает хорошо.
Но я использую pycharm, и после внесения нескольких правок я также использовал функцию «упорядочить импорт», которая превратила импорт в:
import random
import time
from datetime import datetime
from ourlibA import *
from ourlibB import *
print datetime.now()
И когда я теперь запускаю этоизменив скрипт, я получаю:
print datetime.now ()
AttributeError: объект 'module' не имеет атрибута 'now'
Теперь я просто сбит с толку, приводя к следующим вопросам:
- Что именно здесь может происходить? Импорт для
datetime
все еще там, так откуда же берется эта ошибка? - Очевидно, что проблема должна заключаться в том, что вторые примеры импортируют наши собственные библиотеки последними, а не первыми. Но как именно я могу узнать, какая часть наших библиотек вызывает это?
Я понимаю, что это не полный mcve, но эти частные библиотеки огромны и приватны. Я больше спрашиваю о том, как подойти к такой проблеме «порядка импорта» в python в целом.
(я использую python 2.7.17)