mt-kart
|
--> src/data_kart
| |
| --> apis
| | |
| | --> __init__.py
| | --> endpoints.py
| |
| --> models
| | |
| | --> __init__.py
| | --> modelx.py
| |
| --> defaults.py
| --> main.py
--> tests
|
--> __init__.py
|
--> conftest.py
|
--> test_others.py
在
main.py
当我尝试参考时,我得到 module not found error
:
from defaults import func1
但这有效:
from .defaults import func1
它应该在没有“.”的情况下工作。对吗?
2.
从
endpoints.py
我应该如何参考modelx.py
?我以前的开发人员的情况如下:
from data_kart.models.modelx import model1
但是当我使用
pytest
目录中的 mt-kart
运行一些测试时,它会抱怨。然后以下内容适用于pytest
。但我担心在某些不同的情况下它可能会出错:
from src.data_kart.models.modelx import model1
该项目使用
FastAPI
和 OpenAPI Code generators
编辑
在
conftest.py
中,我将 src
添加到 sys.path
,路径对于我的问题运行良好 2
。
sys.path.append(os.getcwd()+"/src")
PYTHONPATH
中添加包含您的包的目录,如此处所示。例如,如果您使用的是 Windows,则包的目录应如下所示:C:/users/.../mt-kart/src
。将路径添加到环境变量后,请确保启动新终端来午餐pytest
。
通过在
C:/users/.../mt-kart/src
中添加PYTHONPATH
,这意味着您可以像这样导入模块:from data_kart.models.modelx import model1
(就像您的以前的开发人员所做的那样)并且from defaults import func1
应该按预期工作。每次从 data_kart
包导入模块时,它将指向 PYTHONPATH
变量中给出的目录。因此,无需将 sys.path.append(...
添加到项目(或测试文件)中每个文件的顶部来导入模块。