python 3如何定位具有绝对导入的模块?

时间:2019-05-19 10:08:42

标签: python python-3.x

我是Python的新手,无法理解它如何定位来自绝对导入的模块。如果模块的名称不在缓存中,也不在内置模块列表中,则Python将搜索 sys.path 定义的列表,该列表将当前位置作为第一个条目。现在,假设我在驱动器上的随机位置处具有以下结构:

└── project
    ├── package1
    │   ├── module1.py
    │   └── module2.py
    └── package2
        ├── __init__.py
        ├── module3.py
        ├── module4.py
        └── subpackage1
            └── module5.py
project.package2.subpackage1 中的 module5 中的

和代码(例如顶级代码)想要在 some_function > project.package1.module1 。在这种情况下,导入机器所拥有的我的项目位置的唯一条目是导入代码的当前位置,即路径 project / package2 / subpackage1

相对来说,我会写:

from ..package1.module1 import some_function

这是可以理解的工作方式,因为它相对于当前位置获取导入的资源。

但是在绝对导入的情况下,需要上例中项目的根文件夹 project ,定位过程如何进行?它如何从当前位置导航到目标位置,以给出绝对的,不相关的路径?

0 个答案:

没有答案