Pycharm未解决的参考突出显示

时间:2019-09-19 08:34:02

标签: python-3.x import pycharm

我在理解pyCharm如何解析引用方面遇到困难

我有一个这样的项目结构:

ProjectFolder/
   main.py
   libraries/
       my_library.py
       sublibraries/
          my_sublibrary.py

基本上,库是一个文件夹,其中包含一些文件(库)和一些子文件夹,以便更好地构建库

main.py从库sublibraries导入,没有任何问题。 my_library.pysublibraries

导入一些类
# 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设置并使用“标记为源根目录”选项吗?

1 个答案:

答案 0 :(得分:0)

您可以在__init__.pylibraries/文件夹中创建空的sublibraries/文件,这会将这些文件夹变成(子)包。这将使相对导入工作(并删除突出显示)。