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

2024-04-02

当我使用 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
[...]

我正在使用 PostgreSQL 数据库postgis已启用(它是一个地理定位应用程序)。

我已经安装了这个构建包 https://elements.heroku.com/buildpacks/heroku/heroku-geo-buildpack and my requirements.txt文件有GDAL==2.4.0在那里(与构建包似乎安装的版本一致)。

我的理解dylibs是它们是 MACOS 文件类型 - 因此Heroku指向我的本地机器GDAL而不是一个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

好的,我是如何解决这个问题的:

  1. 确保您的 GDAL 中没有任何奇怪的事情settings.py- 我已经关注了this https://gis.stackexchange.com/questions/412950/gdal-configuration-for-django-in-mac-gdal-library-path-exception答案是让 GDAL 在开发过程中在我的本地服务器上工作,并且必须从我的路径中删除它settings.py
  2. pip uninstall GDAL
  3. pip freeze > requirements. txt
  4. Add the heroku-geo-buildpack (link https://github.com/heroku/heroku-geo-buildpack)并确保将其设置为第一个buildpack为您的应用程序
  5. git commit你所有的改变
  6. 再次推送应用程序
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Heroku 上部署时带有 GDAL 的 Django 抛出错误 的相关文章

随机推荐

  • 更改输入 onchange 的值?

    我正在尝试创建一个简单的 JavaScript 函数 当有人在一个数字中插入一个数字时input字段时 另一个字段的值应更改为该值 这是我现在所拥有的 function updateInput ish fieldname value ish
  • Amazon S3s 密钥背后的数据结构(过滤数据结构)

    我想实现一个类似于 Amazon S3 的查找功能的数据结构 就上下文而言 Amazon S3 将所有文件存储在平面命名空间中 但允许您通过文件名中的公共前缀查找文件组 从而复制目录树的功能 但又不那么复杂 问题是 查找和过滤操作都是 O
  • 如果类具有 @XmlElement 属性,则它不能具有 @XmlValue 属性

    我收到以下错误 If a class has XmlElement property it cannot have XmlValue property updated class XmlType propOrder currencyCode
  • 如何在 sqlalchemy 查询中将日期时间更改为字符串? [复制]

    这个问题在这里已经有答案了 这是我的代码 查询Notification create time result session query Notification content cls is read Notification creat
  • Freebase 上 MQL 中的多个查询

    我正在尝试从 Freebase 获取结果列表 我有一系列 MID 有人可以解释一下我如何构建查询并将其传递给 PHP 中的 API 吗 我是 MQL 新手 我什至无法让示例正常工作 simplequery array id gt topic
  • 斯威夫特:“!”的区别和 '?'迅速

    我声明如下 IBOutlet var hw label UILabel 如果我像上面那样写就可以成功运行 但是当我声明如下时 IBOutlet var hw label UILabel and hw label text Hello Wor
  • 如何使用 CSS/Javascript 防止 iOS 上 HTML 上的自动旋转图像

    我正在创建一个照片网站 我上传了一张自己的照片 但实际上方向不正确 图像逆时针旋转 90 度 我从我的 iPhone 上传了这张图片 显然 iPhone 是故意以这种方式存储的 在我的网站上 HTML 页面呈现了一个 JSON 对象 其中包
  • sizeof 运算符的问题

    由于我想在函数中动态查找数组大小 因此我使用了 sizeof 运算符 但我得到了一些意想不到的结果 这是一个演示程序 向您展示我想要做什么 include
  • 如何用 C 语言编写 C 编译器? [复制]

    这个问题在这里已经有答案了 这个问题可能源于我对编译器的误解 但这里是 在 K R 第一版的序言 第 xi 页 中可以找到以下陈述 操作系统 C编译器 并且基本上所有 UNIX 应用程序 包括编写本书所使用的所有软件 都是用 C 编写的 我
  • 同时预增量和后增量或混合预增量[重复]

    这个问题在这里已经有答案了 可能的重复 C 中的前后递增 递减运算符 https stackoverflow com questions 174153 pre and post increment decrement operators i
  • NSImageView 动画

    我是Mac开发新手 我们有类似的方法吗imagev NSArray 数组WithObjects 我需要像我们在 iOS 中所做的事情想要在 mac 中做的事情 imageVie animationImages NSArray arrayWi
  • 调试长时间运行的 PHP 脚本

    我有 php 脚本作为 cron 作业运行 广泛使用第三方代码 脚本本身有几千个LOC 基本上它是数据导入 处理脚本 JSON 到 MySQL 但它也进行大量 HTTP 调用和一些 SOAP 现在 性能随着时间的推移而下降 当测试少量记录
  • 推送到 GitHub 错误:无法在 .netrc 文件中找到主机 github.com;使用默认值

    我不知道发生了什么 我没有得到github的回应 我在一个月左右的时间里第一次尝试了 git Push 并得到了这个 打开导出 GIT CURL VERBOSE 1 并进行推送并得到 localhost send2mobile rails
  • Visual Studio Intellisense 如何工作?

    有人可以解释一下 Visual Studio 中的智能感知究竟是如何工作的吗 智能感知背后的秘密是在后台运行的构建提供程序 本文将进一步阐述这个主题 http aspalliance com 1102 Creating a Custom B
  • 如何查找相似文档

    如何在 Lucene 中找到给定文档的相似文档 我不知道文本是什么 我只知道文档是什么 有没有办法在lucene中找到类似的文档 我是新手 所以我可能需要一些指导 你可能想检查 lucene 的 MoreLikeThis 功能 MoreLi
  • 如何突出显示当前页面的父页面?

    如何突出显示当前页面的父菜单项 我有一个站点地图如下 val siteMap SiteMap Menu Home index Menu Search search submenus Menu Search Results search re
  • Git 分支 --merged / --no-merged 和 --squash 选项

    git branch merged似乎与 squash 配合得不好 如果你做一个正常的git merge then git branch merged告诉您哪些分支已被合并 然而 如果使用 squash 选项 则情况并非如此 即使生成的树是
  • 如何在 Dart 强模式下声明泛型运算符?

    Dart 让我声明泛型方法 例如T first
  • 调整plotlyOutput对象的大小

    我正在尝试在闪亮的应用程序中调整plotlyOutput的大小 但在今天更新到R 3 4并更新shiny和plotly plotly 4 7 0 ggplot2 2 2 1 9000 shiny 1 0 3 之后 更改高度参数似乎不会影响绘
  • 在 Heroku 上部署时带有 GDAL 的 Django 抛出错误

    当我使用 Heroku 部署 Django 应用程序时 GDAL 似乎存在一些问题 当我跑步时heroku logs tail我得到以下信息 2022 01 14T11 20 56 792392 00 00 app web 1 File a