Обычно Python не должен импортировать модуль дважды независимо от абсолютных / относительных ссылок. Вероятно, что Python рассматривает исходный файл как два разных файла и таким образом импортирует их отдельно. Это может произойти из-за символически связанных файлов / каталогов, или рядом разных версий, или перекрывающихся каталогов в PYTHONPATH, трудно сказать.
Один из способов отследить это - использовать интерактивный отладчик. Добавьте строку import pdb; pdb.set_trace()
в верхний уровень вашего файла, и в интерактивной оболочке введите bt
, чтобы получить обратный след, который должен показать цепочку импорта. Продолжайте с c
. Когда файл импортируется во второй раз и отладчик активирован, попробуйте bt
еще раз и сравните два вывода, которые могут выявить проблему.