我在PyCharm编辑器中有一个项目,其中基类和子类在单独的文件中实现。在子类中,我正在访问在基类中实现的函数。
Pycharm有一个键盘快捷键“Ctrl + Alt + B”来执行按下快捷键时突出显示的方法。但是,我无法导航到不同文件中的任何实现。我只能使用在同一文件中实现的方法。我还尝试了其他选项,包括导航到超级方法或导航到声明只是为了查看是否有任何其他命令用于导航到不同的文件,但它们似乎都没有效果。
除了在PyCharm中包含同一项目中的文件之外,还有什么方法可以做到这一点吗?例如,我之前是否需要做任何索引,以便PyCharm可以识别不同文件的实现?
丹的评论后有更多细节:项目结构很简单:
项目目录
在Dir1内
Withi Dir2
出于此问题的目的,File1可以被视为基类,file3可以被视为子类。当我在pycharm中的File3中,并且在调用file1中实现的函数的位置时,我无法导航到File1中的该函数。
实际上,即使没有类继承关系,我也无法导航到除光标所在的当前文件以外的文件中实现的任何函数。例如,如果我在File3中调用该函数并且该函数位于File4中的同一目录中,则无法导航到该函数。
这有点令人惊讶,因为基本的其他IDE端可能在我的设置中存在一些问题,但我无法弄清楚该怎么做。希望有了这些信息,有人可以至少指出我进一步调查的方向。我正在使用pycharm社区版
经过几天的搜索,我终于找到了难题的答案。当我导入基类模块时,我是这样导入的:
sys.path.insert(0, r"<relative path to base class>")
import base_class
它看起来像pycharm不明白这一点。当我改变这个
import dir1.file1
在dir2 / file2(子类)中,pycharm能够导航到基类。我希望它对某人有帮助。我花了三个星期才弄明白。但我不是一个非常聪明的人,其他人可以借助这个答案或他们自己弄明白