首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Heroku上部署时带有GDAL抛出错误的Django

在Heroku上部署时带有GDAL抛出错误的Django
EN

Stack Overflow用户
提问于 2022-01-14 11:28:24
回答 1查看 385关注 0票数 0

当我用Heroku部署Django应用程序时,GDAL似乎出现了一些问题。当我运行heroku logs --tail时,我得到以下信息:

代码语言:javascript
运行
复制
[...]
2022-01-14T11:20:56.792392+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/django/contrib/gis/db/backends/postgis/base.py", line 6, in <module>
2022-01-14T11:20:56.792393+00:00 app[web.1]: from .features import DatabaseFeatures
2022-01-14T11:20:56.792393+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/django/contrib/gis/db/backends/postgis/features.py", line 1, in <module>
2022-01-14T11:20:56.792394+00:00 app[web.1]: from django.contrib.gis.db.backends.base.features import BaseSpatialFeatures
2022-01-14T11:20:56.792394+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/django/contrib/gis/db/backends/base/features.py", line 3, in <module>
2022-01-14T11:20:56.792394+00:00 app[web.1]: from django.contrib.gis.db import models
2022-01-14T11:20:56.792395+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/django/contrib/gis/db/models/__init__.py", line 3, in <module>
2022-01-14T11:20:56.792395+00:00 app[web.1]: import django.contrib.gis.db.models.functions  # NOQA
2022-01-14T11:20:56.792395+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/django/contrib/gis/db/models/functions.py", line 3, in <module>
2022-01-14T11:20:56.792396+00:00 app[web.1]: from django.contrib.gis.db.models.fields import BaseSpatialField, GeometryField
2022-01-14T11:20:56.792401+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/django/contrib/gis/db/models/fields.py", line 3, in <module>
2022-01-14T11:20:56.792401+00:00 app[web.1]: from django.contrib.gis import forms, gdal
2022-01-14T11:20:56.792402+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/django/contrib/gis/forms/__init__.py", line 3, in <module>
2022-01-14T11:20:56.792402+00:00 app[web.1]: from .fields import (  # NOQA
2022-01-14T11:20:56.792402+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/django/contrib/gis/forms/fields.py", line 2, in <module>
2022-01-14T11:20:56.792402+00:00 app[web.1]: from django.contrib.gis.gdal import GDALException
2022-01-14T11:20:56.792403+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/django/contrib/gis/gdal/__init__.py", line 28, in <module>
2022-01-14T11:20:56.792406+00:00 app[web.1]: from django.contrib.gis.gdal.datasource import DataSource
2022-01-14T11:20:56.792407+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/django/contrib/gis/gdal/datasource.py", line 40, in <module>
2022-01-14T11:20:56.792407+00:00 app[web.1]: from django.contrib.gis.gdal.driver import Driver
2022-01-14T11:20:56.792407+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/django/contrib/gis/gdal/driver.py", line 5, in <module>
2022-01-14T11:20:56.792407+00:00 app[web.1]: from django.contrib.gis.gdal.prototypes import ds as vcapi, raster as rcapi
2022-01-14T11:20:56.792408+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/django/contrib/gis/gdal/prototypes/ds.py", line 9, in <module>
2022-01-14T11:20:56.792408+00:00 app[web.1]: from django.contrib.gis.gdal.libgdal import GDAL_VERSION, lgdal
2022-01-14T11:20:56.792408+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/django/contrib/gis/gdal/libgdal.py", line 53, in <module>
2022-01-14T11:20:56.792409+00:00 app[web.1]: lgdal = CDLL(lib_path)
2022-01-14T11:20:56.792409+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/ctypes/__init__.py", line 374, in __init__
2022-01-14T11:20:56.792409+00:00 app[web.1]: self._handle = _dlopen(self._name, mode)
2022-01-14T11:20:56.792409+00:00 app[web.1]: OSError: /opt/homebrew/opt/gdal/lib/libgdal.dylib: cannot open shared object file: No such file or directory
2022-01-14T11:20:56.792410+00:00 app[web.1]: [2022-01-14 11:20:56 +0000] [10] [INFO] Worker exiting (pid: 10)
2022-01-14T11:20:56.895552+00:00 app[web.1]: [2022-01-14 11:20:56 +0000] [4] [WARNING] Worker with pid 10 was terminated due to signal 15
2022-01-14T11:20:56.993856+00:00 app[web.1]: [2022-01-14 11:20:56 +0000] [4] [INFO] Shutting down: Master
2022-01-14T11:20:56.993930+00:00 app[web.1]: [2022-01-14 11:20:56 +0000] [4] [INFO] Reason: Worker failed to boot.
2022-01-14T11:20:57.168821+00:00 heroku[web.1]: Process exited with status 3
[...]

我使用的是一个启用了PostgreSQL的postgis数据库(这是一个地理定位应用程序)。

我已经安装了这个积木包,我的requirements.txt文件中有GDAL==2.4.0 (它与构建包所安装的版本保持一致)。

我对dylibs的理解是,它们是一种MACOS文件类型--因此Heroku是指向我的本地GDAL机器,而不是Heroku dyno,我对这一切相当陌生,但我认为我需要弄清楚为什么会发生这种情况,以及如何改变Heroku搜索GDAL的位置。

Requirements.txt:

代码语言:javascript
运行
复制
asgiref==3.4.1
beautifulsoup4==4.10.0
bs4==0.0.1
certifi==2021.10.8
cffi==1.15.0
charset-normalizer==2.0.10
cryptography==36.0.1
defusedxml==0.7.1
dj-database-url==0.5.0
Django==4.0.1
django-allauth==0.47.0
django-bootstrap-modal-forms==2.2.0
django-heroku==0.3.1
django-on-heroku==1.1.2
django-widget-tweaks==1.4.11
djangorestframework==3.13.1
GDAL==2.4.0
gunicorn==20.1.0
idna==3.3
oauthlib==3.1.1
psycopg2==2.9.3
psycopg2-binary==2.9.3
pycparser==2.21
PyJWT==2.3.0
python3-openid==3.2.0
pytz==2021.3
requests==2.27.1
requests-oauthlib==1.3.0
soupsieve==2.3.1
sqlparse==0.4.2
urllib3==1.26.8
whitenoise==5.3.0
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-19 23:19:43

好吧,我是怎么修好这个的:

  1. 确保在您的settings.py中没有任何与GDAL有关的古怪操作--在开发期间,我遵循了答案,让GDAL在我的本地服务器上工作,并且不得不从我的settings.py中删除它的路径。
  2. pip uninstall GDAL
  3. pip freeze > requirements. txt
  4. 添加heroku-geo-buildpack (链接)并确保将其设置为应用程序的第一个buildpack
  5. git commit您的所有更改
  6. 再次推送应用程序
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70709904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档