Python如何处理sys.path.insert(path)并以不同方式导入package_path.module

问题描述 投票:0回答:1

我正在使用pycharm,并且无法从以下项目结构的格式的子类代码导航到基类

dir 1 Base class dir 2使用这种方式导入类时的子类,pycharm无法导航到基类但Python文件正确执行

sys.insert.path("../dir1/")
import baseclass

当我使用导入类时

import dir1.baseclass

使pycharm了解基类的位置,并使用快捷方式导航到它。在这种情况下,Python脚本可以使用pycharm正确执行。

我无法理解python如何自动找出import dir1.baseclass中baseclass.py的路径,因为我从未给出dir1的相对或绝对路径。它是否自动假定dir1将与子类的目录级别相同。

为什么pycharm表现不同,这些导航语句的执行工作相同?

python pycharm
1个回答
1
投票

基本上,当您调用Python来运行存档时,它将包含此存档的目录定义为工作目录。之后,Python的解释器尝试解析导入,为此,它首先在工作目录中搜索这些导入。

但是,当你使用import dir1.baseclass时,你告诉Python文件基类不在工作目录中,但是在它的一个子目录中,在这种情况下,在../WorkingDirecory/dir1/中,所以,python导航到那里并导入了类。

© www.soinside.com 2019 - 2024. All rights reserved.