【发布时间】: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