Python: 如何从子目录导入包

Python: How to import package from subdirectory

我有以下项目结构:

Project/
|-- src/
|   |-- package/
|       |-- __init__.py
|       |-- a.py
|       |-- b.py
|
|-- tests/
    |-- test_a.py

我的 __init__.py 文件看起来像这样

from .a import some_function
from .b import SOME_CONSTANT

但是现在我想运行下面的代码在test_a.py:

import package

package.some_function()

只要它位于 src/ 目录中,一切正常,我可以访问我的包中定义的所有导入。但我希望它位于 tests/ 目录中。

当查看 flask repo I found that thex do it like that. For example, flasks test_appctx.py 正是这样做的:

import flask

flask.do_something()

如何在我的项目中实现这一点?

您应该将 src/ 添加到查找函数的文件夹中:

import sys
sys.path.append('../src')