从 python 中的其他目录导入文件?

Importing files from other directory in python?

我有以下目录结构:

一个
|
|--B--Hello.py
|
|--C--Message.py

现在如果根目录A的路径不固定,如何从B导入"Hello.py"到C的"Message.py"

起初我建议将空 __init__.py 文件添加到每个包含 python 源的目录中。它将防止许多导入问题,因为这就是 packages 在 Python 中的工作方式:

在您的情况下,它应该如下所示:

A
├── B
│   ├── Hello.py
│   └── __init__.py
├── C
│   ├── Message.py
│   └── __init__.py
└── __init__.py

假设 Hello.py 包含函数 foo:

def foo():
    return 'bar'

并且 Message.py 尝试使用它:

from ..B.Hello import foo

print(foo())

第一种方法让Python解释器完成他的工作并handle package构建:

~ $ python -m A.C.Message

另一种选择 是使用以下代码将 Hello.py 文件添加到 list of known sources 中:

# Message.py file

import sys, os
sys.path.insert(0, os.path.abspath('..'))

from B.Hello import foo

print(foo())

在这种情况下,您可以使用

执行它
~/A/C $ python Message.py