LINUX.ORG.RU

Импорт модулей и кэш в питоне, или что это?

 , ,


0

3

Всем привет.

Есть модуль One (в виде файла), в нем несколько классов, пусть это будут: A и B. Спустя какое-то время, я добавляю в One третий класс C. Так вот при попытке импортировать класс, я получаю ImportError. А в списке доступных классов/методов (извлеченного из dir(One)) класса C вообще нет. Я подумал, может это кеш? Удалил One.pyc, оставил только One.py. Но проблема не решилась. Что это может быть?

from Models.One import C
ImportError: cannot import name C
import Models.One as One
print dir(One)
['A', 'B']

print One
<module 'Models.One' from '/home/user_dir/project/Models/One.pyc'>

Сам модуль One:

class A(object):
    pass

class B(object):
    pass

class C(object):
    pass

★★★

Последнее исправление: VirRaa (всего исправлений: 4)

Для диагностики ещё нужно знать, каким образом ты всё это вызываешь. Это ipython?

Shtsh ★★★★
()
Ответ на: комментарий от Shtsh

В общем ответ на вопрос найден. Действительно важно, через что я запускаю, но думаю это уточнение бы не подошло. Т.к. запускаю я через pycharm (он вызывает обычный /usr/bin/python), но дело в том, что у меня ещё есть проект, где точно такая же структура модулей, и вот этот модуль он почему-то тянул из соседнего проекта (что очень странно).

VirRaa ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.