one*_*ece 30 python python-import
首先我创造了 __init__.py
from flask import Flask
app = Flask(__name__)
Run Code Online (Sandbox Code Playgroud)
然后在一个单独的文件中,在同一目录中 run.py
from app import app
app.run(
debug = True
)
Run Code Online (Sandbox Code Playgroud)
当我尝试运行时run.py,我收到错误
Traceback (most recent call last):
File "run.py", line 1, in <module>
from app import app
ImportError: No module named app
Run Code Online (Sandbox Code Playgroud)
d-_*_*_-b 37
如果你仍然被困住..
我仅在 IDE (VSCode) 中的Debugging 期间收到No module named app错误,而不是 Running 期间收到错误
那是因为我在 app.py 的 __main__ 中设置了debug=True(在代码更改后自动重新加载烧瓶):
应用程序运行(调试=真)
要修复该错误,只需将其设置为False:
应用程序运行(调试=假)
Eli*_*sha 25
__init__.py是使用目录导入的.如果你想导入它,app你应该将__init__.py文件放在名为的目录中app
更好的选择是只重命名__init__.py到app.py
Nuh*_*man 13
这可能是 Flask 应用程序文件夹结构中的错误。
任何为烧瓶项目寻找简单的初学者友好结构的人都会发现这很有帮助:
|__movies
|__run.py
|__app
??? templates
? ??? index.html
? ??? signup.html
??? __init__.py
??? routes.py
Run Code Online (Sandbox Code Playgroud)
这里的“电影”是主应用程序的名称。它包含“ run.py ”和一个名为“ app ”的文件夹。“应用程序”文件夹包含所有必要的文件烧瓶诸如“模板”文件夹,“ __init __.py ”和“ routes.py ”。
内容:
运行.py:
from app import app
Run Code Online (Sandbox Code Playgroud)
__init__.py:
from flask import Flask
app = Flask(__name__)
from app import routes
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
路线.py:
from app import app
@app.route('/')
@app.route('/index')
def index():
return "Hello, World!"
Run Code Online (Sandbox Code Playgroud)
您的__init__.py文件需要放在名为app的文件夹中,而不是与run.py文件相同的目录.
from app import app正在寻找app文件夹,所以__init__.py文件需要坐在那里.