PyCharm неразрешимая ссылка при импорте класса из другого файла
Эта проблема сводила меня с ума. Я пытаюсь импортировать класс из файла в том же каталоге. PyCharm дает мне ошибку "Unresolved reference". MyClass
определяется в file.py
.
![Unresolved reference]()
Я нашел следующие вопросы:
У меня есть следующая структура проекта:
![Project structure]()
Я записал src как источник root...
Я установил "Добавить корни источника в PYTHONPATH":
![Add sources option]()
Я попробовал File → Invalidate Caches/Restart.. (Я даже перезапустил компьютер).
Если я попытаюсь запустить его, я получаю следующую ошибку в консоли: ImportError: cannot import name 'MyClass'
Интерпретатор является виртуальным на Python 3.4 на Ubuntu x64 14.04.
Если я устанавливаю и импортирую любые сторонние пакеты, они работают нормально.
Если я пытаюсь использовать echo $PYTHONPATH
в терминале, он ничего не возвращает (то же самое с env | grep PYTHONPATH
. У меня есть соответствующий virtualenv active, когда я пытаюсь это сделать.
Любые подсказки?
Ответы
Ответ 1
Если MyClass
определено в pack/file.py
, вам необходимо импортировать его как:
from pack.file import MyClass
Обратите внимание, что использование имен встроенных типов Python (например, file
) для ваших собственных модулей - плохая идея.
Ответ 2
Если вы используете python версии 3, попробуйте это
из .pack import myclass, работал у меня
Ответ 3
Да, если вы используете python 3, вы должны добавить что-то вроде этого:
from .pack import MyClass
Он будет работать
Ответ 4
Следующие шаги решили мои проблемы:
- Для всех каталогов требуется как минимум пустой файл __init__.py
- Отметить все каталоги как исходные корни (согласно предыдущим инструкциям автора)