开发者问题收集

python flask import。导入错误未知位置

2021-02-12
7297

我试图从位于网站文件中的 init .py 导入 create_app 但每次我尝试运行代码时都会得到

ImportError: cannot import name 'create_app' from 'website' (unknown location)

这是我的文件

.vscode
env
website
   --static
   --templates
   --__init__.py
   --auth.py
   --views.py
   --models.py
main.py

init .py

from flask import Flask
def create_app():
    app = Flask(__name__)
    app.config['SECRET_KEY'] = 'hello'
    return app

main.py

from website import create_app
app = create_app
if __name__ == '__main__':
    app.run(debug=True)

以为这是唯一不起作用的方法,我尝试使用此方法来检查错误是否来自 vscode,但它只是来自这种方法 我试过 app.py

from flask import Flask 
app = Flask(__name__)
@app.route("/")
def home():
    return "hello Flask"

当我在终端中写入`python -m flask run 我会得到一个显示“hello Flask”的网站 但当我按下运行图标时我什么也得不到

与第一个不同,如果我运行它,我会得到一个导入错误未知位置 如果我使用 python -m flask run,我会得到

Error: could not locate a Flask application. You did not provide the "FLASK_APP" environment variable, and a "wsgi.py" or "app.py" module not found in the current directory.

以为一切都同步到 Github 在它们两者中,我都在“脚本”环境中工作

3个回答

我想到的一个解决方法是将 name 添加到 init 文件中定义 create_app 的函数中。 示例:

from flask import Flask

def create_app( name ): app = Flask( name )

user21179911
2023-02-09

导入时,请尝试 from website.templates import create_app 。因此,基本上,在您将其放入从网站导入后,在您想要从中导入的子文件夹后面添加 . (在本例中为 templates )。

Gonçalo Carvalheda
2021-03-30

我遇到了同样的问题,但看起来这些文件“模型、视图等”不在网站文件夹中,它们位于网站文件夹中的静态文件夹中,这就是它不起作用的原因。 我只是手动修复了它们。

Ahmed Hammad
2021-05-11