我刚刚开始使用PyDev,但很难理解如何管理错误报告。
例如,我已将bottle.py添加到项目的External Libs中,并将“bottle”添加到Python Interpreter配置Packages和Forced Builtins选项卡中。但是,在仅包含以下代码的文件中,第5行显示2个错误:“来自导入的未定义变量:请求”和“来自导入的未定义变量:get”。第3行还可以。
from bottle import request
def postd():
return request.forms
def post_get(name, default=''):
return request.POST.get(name, default).strip()
为什么PyDev在第5行报告错误?我该如何解决这个问题?
答案 0 :(得分:0)
问题在于PyDev在将其添加到强制内置函数时会进行内省,但是瓶子不会像那样直接工作。
即:如果你打开一个shell并执行:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\tools\Miniconda\envs\check\lib\site-packages\bottle.py", line 166, in __get__
if key not in storage: storage[key] = self.getter(obj)
File "C:\tools\Miniconda\envs\check\lib\site-packages\bottle.py", line 1218, in POST
pairs = _parse_qsl(tonat(self._get_body_string(), 'latin1'))
File "C:\tools\Miniconda\envs\check\lib\site-packages\bottle.py", line 1185, in _get_body_string
data = self.body.read(clen)
File "C:\tools\Miniconda\envs\check\lib\site-packages\bottle.py", line 1197, in body
self._body.seek(0)
File "C:\tools\Miniconda\envs\check\lib\site-packages\bottle.py", line 166, in __get__
if key not in storage: storage[key] = self.getter(obj)
File "C:\tools\Miniconda\envs\check\lib\site-packages\bottle.py", line 1164, in _body
read_func = self.environ['wsgi.input'].read
KeyError: 'wsgi.input'
您有错误(这会阻止PyDev正确分析该模块):
shouldChangeCharactersIn
解决方案包括在您自己的代码中创建自己的包装器,并在该位置通知这是预期的(该行中的Ctrl + 1将显示忽略特定行中的错误的选项) - {{3}有其他修复。