运行烧瓶时出现以下错误消息,我得到500 Internal Server Error
:
NameError:名称'self'未定义
昨天我的代码运行良好,并且没有进行任何更改。错误消息列出了已在分发代码中导入的python文件。也许背景有些变化?
192.168.234.116 - - [10/Jul/2019 11:15:56] "GET / HTTP/1.0" 500 -
Error on request:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/werkzeug/serving.py", line 303, in run_wsgi
execute(self.server.app)
File "/usr/local/lib/python3.7/site-packages/werkzeug/serving.py", line 291, in execute
application_iter = app(environ, start_response)
File "/home/ubuntu/environment/pset8/finance/application.py", line 13, in <module>
app = Flask(__name__)
File "/usr/local/lib/python3.7/site-packages/cs50/flask.py", line 54, in _after
self.wsgi_app = ProxyFix(self.wsgi_app, x_proto=1)
NameError: name 'self' is not defined
答案 0 :(得分:1)
这是 CS50 错误(回归)。
我已经提交了[GitHub]: cs50/python-cs50 - Added the 1st (required) argument (self) to flask.Flask's initializer,该文件已关闭(因为它不完整-因为提交时我太着急,错过了一个位置),并且 [GitHub]: Fix missing self arguments in Flask __init__ replacement 已创建并合并。不确定何时上市(PyPI,所以您可以简单地pip install
),但是您可以从 GitHub 下载源并覆盖您的。
作为替代,您可以下载补丁,然后在本地应用更改。检查[SO]: Run/Debug a Django application's UnitTests from the mouse right click context menu in PyCharm Community Edition? (@CristiFati's answer)(修补 utrunner 部分)以了解如何应用修补程序(基本上,每行以一个“ +” 符号开头)进入,以一个“-” 符号开头的每一行都熄灭)。
或者(鉴于更改不只是微不足道的事实),您可以:
def _after(*args, **kwargs):
),作者:def _after(self, *args, **kwargs):
_before(*args, **kwargs)
),作者:_before(self, *args, **kwargs)
让我知道它是如何工作的。
答案 1 :(得分:0)
该错误已由CS50人员修复。
选择CS50 IDE>注销,然后从ide.cs50.io重新登录。或者,您可以运行:
sudo pip3 install cs50 --upgrade