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

2024-06-14 21:54:32 发布

您现在位置:Python中文网/ 问答频道 /正文

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

client.py

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


app = create_app() 

init.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


Tags: frompyimportsrcclientappflaskdb
1条回答
网友
1楼 · 发布于 2024-06-14 21:54:32

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

解决方案:

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

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

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

最后,我使用pythonsrc/clients.py运行了它,它可以正常工作

待办事项: 由于client.py是一个“独立”脚本,与flask应用程序无关,除了它像一个包一样使用应用程序来导入数据库及其配置外,我认为最好将client.py移动到一个单独的包中(因为我需要沿着flask应用程序运行脚本)

相关问题 更多 >