我正在 Rocky Linux 9 上开发 GeoDjango 项目并使用 Apache 进行部署。当我使用标准 Postgres 数据库引擎时,应用程序运行良好: "ENGINE": "django.db.backends.postgresql", 但一旦我切换到 PostGIS 后端引擎: '引擎': 'django.contrib.gis.db.backends.postgis', 我收到以下错误:
文件“/home/centurion/centurion_web/.venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/postgis/base.py”,第7行,在 从.adapter导入PostGISAdapter 文件“/home/centurion/centurion_web/.venv/lib/python3.12/site-packages/django/contrib/gis/db/backends/postgis/adapter.py”,第 5 行,位于 从 django.contrib.gis.geos 导入 GEOSGeometry 文件“/home/centurion/centurion_web/.venv/lib/python3.12/site-packages/django/contrib/gis/geos/init.py”,第 5 行,位于 来自 .collections 导入 ( # NOQA 文件“/home/centurion/centurion_web/.venv/lib/python3.12/site-packages/django/contrib/gis/geos/collections.py”,第 5 行,位于 从 django.contrib.gis.geos 导入原型作为 capi 文件“/home/centurion/centurion_web/.venv/lib/python3.12/site-packages/django/contrib/gis/geos/prototypes/init.py”,第7行,位于 来自 django.contrib.gis.geos.prototypes.coordseq 导入 ( # NOQA 文件“/home/centurion/centurion_web/.venv/lib/python3.12/site-packages/django/contrib/gis/geos/prototypes/coordseq.py”,第3行,位于 从 django.contrib.gis.geos.libgeos 导入 CS_PTR、GEOM_PTR、GEOSFuncFactory 文件“/home/centurion/centurion_web/.venv/lib/python3.12/site-packages/django/contrib/gis/geos/libgeos.py”,第 88 行,位于 notification_h = NOTICEFUNC(notice_h) ^^^^^^^^^^^^^^^^^^^^^^ 内存错误
我什至还没有在应用程序中实现任何地理空间代码。我在 Windows 上有一个开发服务器,应用程序使用 runserver 命令在该引擎上正常运行。
我尝试直接设置 GEOS_LIBRARY_PATH 和 GDAL_LIBRARY_PATH 但没有成功。我从 django 5.0 降级到 4.2 但没有成功。
解决了!这是一个 SELinux 问题,阻止访问某些文件,但显示为内存错误。