Python Flask中的相对导入似乎不起作用

时间:2017-08-16 06:10:24

标签: python flask import python-import valueerror

我的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
    )

我很担心如何将modelsapp (__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

运行测试文件

1 个答案:

答案 0 :(得分:0)

一种解决方案是在项目的根目录下创建一个setup.py文件。

然后,您可以使用pip

安装您的应用
pip install --editable .

通过这种方式,您可以从first_test.py文件中导入您的应用程序。

from API import app

当然,最后一个import语句取决于app对象的位置。

有关更多信息,请参阅flask repo中的minitwit示例。

minitwit

希望,这有帮助。