【问题标题】:SystemError: error return without exception set, when using requests and debuggerSystemError:在使用请求和调试器时,没有设置异常的错误返回
【发布时间】:2018-10-26 10:53:19
【问题描述】:

环境: Python 3.6.3 请求 2.18.4 PyCharm 2018.1

在正常运行中使用上述配置时,一切都很好。但是,当使用 PyCharm 调试器时,我的输出不断给我两种异常:

Exception ignored in: <generator object urlsplit.<locals>.<genexpr> at 0x7f69803940a0>
Traceback (most recent call last):
  File "/usr/lib/python3.6/urllib/parse.py", line 433, in <genexpr>
    if not rest or any(c not in '0123456789' for c in rest):

SystemError: error return without exception set
Exception ignored in: <generator object iter_slices at 0x7f69803940f8>
Traceback (most recent call last):
  File "/home/damian/workspace/DofusV2/venv/lib/python3.6/site-packages/requests/utils.py", line 449, in iter_slices
    def iter_slices(string, slice_length):
`

这不是单个项目中的问题,我在无数项目中都遇到过这个问题。但是,每个项目都是多线程的(我不知道这是否有什么不同) 问题是我在不使用调试器时没有这个问题,而且它并没有真正做任何事情,应用程序稳定并且工作正常。我的问题是为什么会发生这种情况,我至少可以抑制它,以免污染我的日志吗?

【问题讨论】:

  • here 有什么帮助吗?
  • 不是真的,它只是说明问题可能是由于生成器对象被破坏,并没有说明如何解决问题。另外我的问题只在使用调试器时出现。
  • 是的,提出解决方案的问题(和链接的问题)。不要在生成器清理时引发异常。如果您不提供代码,我们将无法帮助您。我认为它只会在调试时发生,因为调试器会进行更明确的清理。
  • 可能是这样,没想到调试器可以这样工作。但是,正如您所见,错误发生在我无法控制的库文件中,因此我无法更改该行为,而且我不知道项目中的哪些行与该问题相关,因为这是我拥有的所有回溯信息得到。
  • 同样的问题,但代码运行完美..

标签: python-3.x python-requests pycharm


【解决方案1】:

我在使用 Gensim Word2vec 模型时遇到了类似的问题,同时在 Python 3.6 / PyCharm 2018.2 中使用了调试器。 作为快速修复,我通过设置环境变量找到了解决方案:

PYDEVD_USE_FRAME_EVAL=NO

这可以通过在 PyCharm 运行配置中设置环境变量在 PyCharm 中轻松完成。设置此变量后,我可以再次使用调试器。更多信息可以在herehere找到。

【讨论】:

  • jetbtains 的人提出了相同的解决方案,但对我不起作用
  • 对我来说工作得很好,我在调试配置环境变量中设置了它
  • 也为我工作(Python 3.7;PyCharm 2019.1.2 CE)
  • 也在PyCharm 2019 1.2 Ultimate 工作过。默认情况下是否可以将其添加到 all 运行配置的 env var 中?
  • 我猜你可以,你可以设置环境变量(也在 PyCharm 之外)。
【解决方案2】:

以防万一它对其他谷歌用户有所帮助,在 Pycharm 2019 中,我发现我在 urlpatterns 中使用了一行代码导致了这个错误:

# including this line caused the error (I wanted to catch the 'my_special_model' type and use the general one below for other models.  
    path('display/my_special_model/<int:item_id>/', views.display_model, name='display_model'),

# This works fine ... 
    path('display/<item_type>/<int:item_id>/', views.display, name='display'),

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    相关资源
    最近更新 更多