我的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
答案 0 :(得分:0)
一种解决方案是在项目的根目录下创建一个setup.py
文件。
然后,您可以使用pip
安装您的应用pip install --editable .
通过这种方式,您可以从first_test.py文件中导入您的应用程序。
from API import app
当然,最后一个import语句取决于app对象的位置。
有关更多信息,请参阅flask repo中的minitwit示例。
希望,这有帮助。