(旧标题:解决从按文件名导入的模块导入时出现的 ModuleNotFoundError 问题)
我有以下项目结构
. Root
|--lambdas/
| |-- lambda-1/
| |-- lambda_function.py
| |-- lambda_context.py
|-- tests
| -- unit
|-- test_my_lambda.py
lambda_function.py 从 lambda_conext.py 导入
from lambda_context import SomeClass
from lambda_context import function_xyz
我将 lambda_function 导入到 test_my_lambda.py 中:
spec = importlib.util.spec_from_file_location("lambda_function", ansolute_path_to_lambda_function/lambda_function.py)
module_name = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module_name)
我运行 pytest:
c:\path_to_project_root\tests> python -m pytest unit\test_my_lambda.py
pytest 失败并显示:
..\lambdas\lambda-1\lambda_function.py:14: in <module>
from lambda_context import SomeClass
E ModuleNotFoundError: No module named 'lambda_context'
如何解决此错误?
导入路径,我相信。
import sys
sys.path.insert(0, '../../../lambda/lambda-1')