Мне трудно понять, как pyCharm разрешает ссылки
У меня есть такая структура проекта:
ProjectFolder/
main.py
libraries/
my_library.py
sublibraries/
my_sublibrary.py
В основном библиотеки - это папка, содержащая некоторые файлы (библиотеки) и некоторыеподпапки для лучшего структурирования библиотек
main.py
импортирует из библиотек и sublibraries
без проблем.my_library.py
импортирует некоторые классы из sublibraries
# inside my_library.py
from sublibraries.my_sublibrary import MyClass
Однако pycharm выделяет сублибрарии красным цветом с ошибкой
Unresolved reference 'sublibraries'
Это на самом деле не влияет на выполнение программы.Он работает нормально, но красная подсветка раздражает.
Я понимаю, что pycharm имеет ProjectFolder в качестве текущей папки и не может найти подпапки, так как в середине есть папка.
Я попробовал парувещей:
Я могу решить эту проблему с помощью mark directory as sources root
, но я не уверен, что это делает, и, поскольку я не передаю файлы .idea, тот, кто извлекает хранилище, имеет ту же проблему с подсветкой и имеетчтобы вручную сделать то же самое.
Я также попытался сделать относительный импорт
# inside my_library.py
from .sublibraries.my_sublibrary import MyClass
Это решает проблему выделения, но затем программа выдает ошибку:
ModuleNotFoundError: No module named '__main__.sublibraries'; '__main__' is not a package
Я не уверен, каков наилучший подход, чтобы такая простая файловая структура работала, была способна распространять ее через git и иметь правильную подсветку.Должен ли я зафиксировать .idea файлы, чтобы другие могли импортировать настройки pycharm и использовать опцию Mark as Sources Root?