我的 Flask 项目具有以下目录结构
├── API
│ ├── __init__.py
│ ├── controllers.py
│ ├── models.py
│ └── test
│ ├── first_test.py
│
├── config.py
├── requirements.txt
├── run.py
└── setup.py
我的
setup.py
如下所示:from setuptools import setup
setup(
name='project_name',
packages=['API'],
include_package_data=True
)
我担心如何导入我的
models
和 app (__init__)
进入我的测试文件( first_test.py
)。所以,到目前为止我已经尝试过
from project_name.API import app
gives from project_name.API import app
E ImportError: No module named project_name.API
from ..API import app
from ..API import app
E ValueError: Attempted relative import in non-package
和
from .. import app
from .. import app
E ValueError: Attempted relative import in non-package
我不知道如何导入文件。另外,我使用
py.test API/test/first_test.py
运行测试文件
最佳答案
一种解决方案是创建一个 setup.py
项目根目录下的文件。
然后,您可以使用 pip 安装您的应用程序
pip install --editable .
通过这种方式,您可以从 first_test.py 文件中导入您的应用程序。
from API import app
当然,最后一个 import 语句取决于 app 对象所在的位置。
有关更多信息,请参阅 flask repo 中的 minitwit 示例。
minitwit
希望能帮助到你。
关于python - Python Flask 中的相对导入似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45706218/