【问题标题】:How can python generate an error on comment?python如何在评论中生成错误?
【发布时间】:2023-06-16 04:20:01
【问题描述】:

我已经发布了a question about this a few days ago。我想这个问题没有引起注意,但这种行为真的很奇怪,所以我试图将其简化为更简单的元素并再次询问。

请查看此回溯:

Traceback (most recent call last):
  File "/home/m2user/webapps/enea/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 114, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/m2user/webapps/enea/local/lib/python2.7/site-packages/django/utils/decorators.py", line 99, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/home/m2user/webapps/enea/local/lib/python2.7/site-packages/django/views/generic/base.py", line 69, in view
    return self.dispatch(request, *args, **kwargs)
  File "/home/m2user/webapps/enea/local/lib/python2.7/site-packages/django/utils/decorators.py", line 29, in _wrapper
    return bound_func(*args, **kwargs)
  File "/home/m2user/webapps/enea/local/lib/python2.7/site-packages/django/utils/decorators.py", line 99, in _wrapped_view
    response = view_func(request, *args, **kwargs)
  File "/home/m2user/webapps/enea/local/lib/python2.7/site-packages/django/utils/decorators.py", line 25, in bound_func
    return func(self, *args2, **kwargs2)
  File "/home/m2user/webapps/enea/src/django-geojson/djgeojson/views.py", line 51, in dispatch
    return super(GeoJSONLayerView, self).dispatch(*args, **kwargs)
  File "/home/m2user/webapps/enea/local/lib/python2.7/site-packages/django/views/generic/base.py", line 87, in dispatch
    return handler(request, *args, **kwargs)
  File "/home/m2user/webapps/enea/local/lib/python2.7/site-packages/django/views/generic/list.py", line 153, in get
    return self.render_to_response(context)
  File "/home/m2user/webapps/enea/src/django-geojson/djgeojson/views.py", line 41, in render_to_response
    **options)
  File "/home/m2user/webapps/enea/src/django-geojson/djgeojson/serializers.py", line 335, in serialize
    self.serialize_object_list(queryset)
  File "/home/m2user/webapps/enea/src/django-geojson/djgeojson/serializers.py", line 277, in serialize_queryset
    self.start_object(obj)
  File "/home/m2user/webapps/enea/src/django-geojson/djgeojson/serializers.py", line 177, in handle_field
    if value is not None:
  File "/home/m2user/webapps/enea/src/django-geojson/djgeojson/serializers.py", line 159, in _handle_geom
    #logger.warn('%s != '%(self.srid, geometry.srid))
  File "/home/m2user/webapps/enea/local/lib/python2.7/site-packages/django/contrib/gis/geos/geometry.py", line 510, in transform
    raise GEOSException("Calling transform() with no SRID set is not supported")

第 159 行怎么会产生这样的错误?这是一条评论!

到目前为止的尝试: 在查询生成此错误的视图之前,我已删除所有 .pyc 文件并重新启动 gunicorn。在源代码(django-geojson lib)中没有其他对transform()函数的调用(我都评论了)。

有什么想法吗?

更新: 我能够通过卸载然后重新安装所有库(作为 ubuntu 包)、python 解释器、所有代码、重新生成数据库(包括重新安装 postgis)然后完全重新启动 nginx(和因此gunicorn)。但是,没有更新任何库,所以我仍然不明白到底发生了什么。

【问题讨论】:

  • 你在序列化程序中分析过这行 159 吗?也许由于某些原因,回溯根本不准确。
  • @Pawelmhm 是的,我做到了。该行完全一样(实际上我评论它是为了检查该行是否真的产生了错误)
  • 你可以添加例如serializers.py 文件的打印语句,以便您可以确定该文件实际被使用?如果将它添加到文件开头的某处,您应该会在 stdout 上看到输出,并且异常应该从第 159 行移至第 160 行。如果两者都没有发生,则 Traceback 中的源不准确。
  • @bohrax 我真的认为回溯是不准确的,但是如果我添加一个打印语句,异常会按预期移动到下一行(我已经尝试过)并且错误仍然存​​在,完全相同.
  • 您在第 159 行是否还有令人讨厌的 transform() 函数调用?在有问题的行之前和之后添加一些打印当前行号的语句怎么样? *.com/questions/6810999/…

标签: python django gunicorn geodjango geos


【解决方案1】:

如果您还没有,您可能想在此处进行讨论。 https://github.com/makinacorpus/django-geojson/pull/11

【讨论】:

  • 谢谢 - 我知道那个拉取请求,但它并没有解决问题。我分叉了代码并尝试了几次以生成解决方法(github.com/furins/django-geojson),但错误仍然存​​在,并且仅在生产服务器上。我以类似的代码结束,但最后我通过重新安装几乎所有东西解决了这个问题。