gpt4 book ai didi

python-3.x - Flask Debug模式在使用 python 运行时给出 "OSError: [Errno 8] Exec format error"

转载 作者:行者123 更新时间:2023-12-03 15:57:39 25 4
gpt4 key购买 nike

所以,这是我制作的一个文件(flaskblog.py):

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
return "<h1>Home Page</h1>"

这是我第一次运行它的方式:
$ export FLASK_APP=flaskblog.py
$ flask run

这是我在 Debug模式下运行它的方式:
$ export FLASK_APP=flaskblog.py
$ export FLASK_DEBUG=1
$ flask run

现在我想直接使用 python 运行应用程序。我首先更新了 .py 文件:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
return "<h1>Home Page</h1>"

if __name__ == "__main__":
app.run()

这是我用来运行python文件的命令:
$ python3 flaskblog.py

它工作得很好。现在我想在 Debug模式下运行应用程序。所以,我更新了文件:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
return "<h1>Home Page</h1>"

if __name__ == "__main__":
app.run(debug=True) #Added ("debug=True") here

用于运行文件的命令:
$ python3 flaskblog.py

这是错误:
 * Serving Flask app "flaskblog" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
Traceback (most recent call last):
File "flaskblog.py", line 9, in <module>
app.run(debug=True)
File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 943, in run
run_simple(host, port, self, **options)
File "/usr/local/lib/python3.6/dist-packages/werkzeug/serving.py", line 988, in run_simple
run_with_reloader(inner, extra_files, reloader_interval, reloader_type)
File "/usr/local/lib/python3.6/dist-packages/werkzeug/_reloader.py", line 332, in run_with_reloader
sys.exit(reloader.restart_with_reloader())
File "/usr/local/lib/python3.6/dist-packages/werkzeug/_reloader.py", line 176, in restart_with_reloader
exit_code = subprocess.call(args, env=new_environ, close_fds=False)
File "/usr/lib/python3.6/subprocess.py", line 267, in call
with Popen(*popenargs, **kwargs) as p:
File "/usr/lib/python3.6/subprocess.py", line 709, in __init__
restore_signals, start_new_session)
File "/usr/lib/python3.6/subprocess.py", line 1344, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
OSError: [Errno 8] Exec format error: '/XXX/XXX/XXX/XXX/XXX/XXX/XXX/XXX/Flask_Blog/flaskblog.py'


我只是使用“XXX”而不是实际目录。任何帮助将不胜感激!

PS:所有代码都来自这个视频: https://www.youtube.com/watch?v=MwZwr5Tvyxo&list=PL-osiE80TeTs4UjLw5MM6OjgkjFeUxCYH

最佳答案

看起来 Flask 正在尝试运行 ./flaskblog.py出于某种原因直接使用,而不是使用 python 二进制文件( python3 flaskblog.py ),因为flaskblog.py 不可执行,因此它不起作用。

所以只需在 flaskblog.py 的顶部添加以下行( shebang )

#!/usr/bin/env python3

...并使文件可执行:
chmod +x flaskblog.py

然后再试一次,要么使用 python3 flaskblog.py或直接作为 ./flaskblog.py .

关于python-3.x - Flask Debug模式在使用 python 运行时给出 "OSError: [Errno 8] Exec format error",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55322179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com