运行以下代码时,出现错误消息:“ UnsupportedOperation:不可写”:
from flask import Flask
app_flask = Flask(__name__)
@app_flask.route('/')
def hello_method():
return "Hello, main page!"
if __name__ == '__main__':
app_flask.run()
有人可以提供一些指导吗?我知道还有另一个问题,但是答案根本没有帮助。这是错误消息的其余部分:
Traceback (most recent call last):
File "<ipython-input-13-a122d150300b>", line 20, in <module>
app_flask.run()
File "C:\anaconda3\lib\site-packages\flask\app.py", line 938, in run
cli.show_server_banner(self.env, self.debug, self.name, False)
File "C:\anaconda3\lib\site-packages\flask\cli.py", line 629, in show_server_banner
click.echo(message)
File "C:\anaconda3\lib\site-packages\click\utils.py", line 259, in echo
file.write(message)
UnsupportedOperation: not writable
答案 0 :(得分:4)
我在这里找到了答案,这是由约瑟夫(Josechval)提供的: https://github.com/plotly/dash/issues/257
乔斯说: “您需要在../ site-packages / click / utils.py 中编辑“ echo”函数定义。“ file”参数的默认值必须为 sys.stdout < / strong>,而不是无。 对../ site-packages / click / termui.py “
中的“ secho”功能定义执行相同的操作答案 1 :(得分:4)
答案 2 :(得分:0)
试试这个:
starting the app on port
try:
# works fine while running the py script in the command-line
app.run(debug=True,port=8000)
except:
# internal issue with Jupyter Notebook
print("Exception occured!")
# running manually
from werkzeug.serving import run_simple
run_simple('localhost', 9000, app)
jupyter notebook 似乎存在内部问题。
答案 3 :(得分:0)
我在 ../site-packages/click/utils.py 编辑了 echo 函数定义,文件参数的默认值必须是 sys.stdout 而不是 None(行号是 166。 这是 --> def echo(message=None, file=sys.stdout, nl=True, err=False, color=None): 我对 ../site-packages/click/termui.py 中的 secho 函数定义做了同样的事情 行号是 408 这是 ---> def secho(text, file=sys.stdout, nl=True, err=False, color=None, **styles):