Следвам подобна структура на директория.
main.py
pack
|___sub_pack1
|__a.py
|___sub_pack2
|__b.py
Сега вътре в main.py (която е основната ми програма, която изпълнявам) импортирам като follow
from pack.sub_pack1 import a
Работи добре.
Вътре в a.py импортирам като follow
from pack.sub_pack2 import b
В този момент pycharm подчертава горния код като червен и ме уведомява „Неразрешен референтен пакет“.
Сега кодът ми работи добре, което би трябвало. Любопитен съм защо pycharm го смята за грешка и какво мога да направя, за да избегна подобно нещо.
__init__.py
в пакета, за да работи нелокалното импортиране. Което е технически задължително за пакетите на Python, но всъщност не е валидирано от интерпретатора и очевидно се прави непоследователно в рамките на PyCharm, който търси къде да разрешава импортирането. - person millimoose   schedule 31.07.2013__init__.py
, разбира се), споделящ същото пространство от имена като това на проекта PyCharm, не се разпознава като такъв от проверките на PyCharm, въпреки че кодът работи добре. Двете решения, предложени по-долу, не работят за мен, тъй като под-пакетът с брат не е част от изходния код, а се намира в папкатаPython27\Lib\site-packages
. - person kadee   schedule 13.04.2016