我正在使用pycharm,无法从以下项目结构的子类代码遵循的格式导航到基类
目录1 基类 目录2 儿童班 当我以这种方式导入类时,pycharm无法导航到基类,但是Python文件可以正确执行
sys.insert.path("../dir1/")
import baseclass
当我使用
导入课程时import dir1.baseclass
让pycharm了解基类的位置,我使用快捷方式导航到基类。在这种情况下,Python脚本可以使用pycharm正确执行。
我无法理解python如何自动找出import dir1.baseclass中baseclass.py的路径,因为我从未提供过dir1的相对或绝对路径。是否自动假设dir1与子类位于同一目录级别。
为什么pycharm在这些语句的行为上有所不同,导航对于执行而言却是相同的?
答案 0 :(得分:1)
基本上,当您调用 Python 来运行档案时,它将包含该档案的目录定义为工作目录。之后,Python的解释器尝试解析导入,并实现该导入,它首先在工作目录中搜索了这些导入。
但是,当您使用import dir1.baseclass
时,您告诉Python该文件基类不在工作目录中,而是在其子目录之一中,在这种情况下,位于../WorkingDirecory/dir1/
内部,因此python导航到那里并导入了该类。