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

标签 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 运行测试文件

最佳答案

一种解决方案是创建一个 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/

相关文章:

python - SQLAlchemy 中的 GroupBy 和 Sum?

python - 如何动态选择要在 flask 中使用的模板目录?

java - 为什么我不必导入在 Java 中不用作变量类型的类?

import - 如何在 Android Studio 中打开现有项目

python - 从 peer 包中导入 conftest.py

python - 如何使用python从文本文件中删除特定行

python - 如何在 django 中获取内连接的表别名

python - 无法安装flask_sqlalchemy ->导入错误: No module named flask_sqlalchemy

visual-studio - 自动命名空间导入

python - 使用不带 HTML 'img' 标签的 Beautifulsoup 下载图像