繁体   English   中英

Flask - ImportError: 尝试在没有已知父 package 的情况下进行相对导入

[英]Flask - ImportError: attempted relative import with no known parent package

尝试从 src package 导入时出现以下错误:

客户端.py

from . import create_app
from . models import db
from . models import Monitoring


app = create_app() 

初始化.py

from flask import Flask
from . models import db
    
app = Flask(__name__)

def create_app():
    db.init_app(app)
    return app


from src import routes

项目树

.
├── manage.py
├── sf.py
├── src
│   ├── client.py
│   ├── __init__.py
│   ├── models.py
│   └── routes.py
└── tests
    ├── __init__.py
    ├── test.py

错误信息:

(sensor_flora) edx@edx-HP-250-G3-Notebook-PC:~/VisualStudio/SensorFlora$ python src/client.py 
Traceback (most recent call last):
  File "src/client.py", line 4, in <module>
    from . import create_app
ImportError: attempted relative import with no known parent package

谢谢你们的帮助,我很感激。

解决方案:

问题是 client.py 脚本不是由 flask 执行的,它有自己的路径。 事实上,我所做的只是在顶层(项目)添加一个正确的 python 路径,如下所示:

export PYTHONPATH="/home/usr/VisualStudio/MyProject"

然后我将所有导入更改为绝对导入。

最后我运行了 python src/clients.py 并且它可以工作。

TODO:由于 client.py 是一个“独立”脚本,与 flask 应用程序无关,除了它使用 package 之类的应用程序来导入数据库及其配置,我虽然最好将 client.py 移动到单独的package(因为我需要沿着 flask 应用程序运行脚本)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM