當我使用 Heroku 部署我的 Django 應用程式時,GDAL 似乎存在一些問題。當我運行時,heroku logs --tail我得到以下資訊:
[...]
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
[...]
我正在使用postgis啟用的 PostgreSQL 資料庫(它是一個地理定位應用程式)。
我已經安裝了這個buildpack并且我的requirements.txt檔案GDAL==2.4.0在那里(與 buildpack 似乎要安裝的版本一致)。
我的理解dylibs是它們是 MACOS 檔案型別 - 因此Heroku指向我的本地機器GDAL而不是 a Heroku dyno,我對這一切都很陌生,但我相信我需要弄清楚為什么會發生這種情況以及如何改變 Heroku 的位置尋找GDAL.
要求.txt:
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
uj5u.com熱心網友回復:
好的,我是如何解決這個問題的:
- 確保你的 GDAL 沒有什么時髦的
settings.py- 我已經按照這個答案讓 GDAL 在開發程序中在我的本地服務器上作業,并且不得不從我的路徑中洗掉它settings.py pip uninstall GDALpip freeze > requirements. txt- 添加
heroku-geo-buildpack(鏈接)并確保將其設定buildpack為您的應用的第一個 git commit你所有的改變- 再次推送應用
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/418968.html
標籤:
