gpt4 book ai didi

python - Heroku-16 堆栈中有什么变化使 GDAL 在 Python 中无法卸载?

转载 作者:行者123 更新时间:2023-11-28 21:41:25 26 4
gpt4 key购买 nike

我正在尝试 Heroku-16 stack似乎 GDAL 升级可能需要更改 Python buildpack。

我在 cedar-14 上使用 cyberdelia/heroku-geo-buildpack和 heroku 自己的 python buildpack .

在 Heroku-16 上使用相同的组合——gdal 版本的唯一变化是将要求更改为 gdal==2.1.3——导致构建错误:No such file or directory : 'gdal-config'

我是否需要更改构建 heroku slug 的方式或是否需要升级构建包。

非常感谢任何提示。

Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-build-w_oq7nbx/gdal/setup.py", line 339, in <module>
**extra )
File "/app/.heroku/python/lib/python3.6/distutils/core.py", line 148, in setup
dist.run_commands()
File "/app/.heroku/python/lib/python3.6/distutils/dist.py", line 955, in run_commands
self.run_command(cmd)
File "/app/.heroku/python/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/app/.heroku/python/lib/python3.6/site-packages/setuptools/command/egg_info.py", line 280, in run
self.find_sources()
File "/app/.heroku/python/lib/python3.6/site-packages/setuptools/command/egg_info.py", line 295, in find_sources
mm.run()
File "/app/.heroku/python/lib/python3.6/site-packages/setuptools/command/egg_info.py", line 526, in run
self.add_defaults()
File "/app/.heroku/python/lib/python3.6/site-packages/setuptools/command/egg_info.py", line 562, in add_defaults
sdist.add_defaults(self)
File "/app/.heroku/python/lib/python3.6/site-packages/setuptools/command/py36compat.py", line 36, in add_defaults
self._add_defaults_ext()
File "/app/.heroku/python/lib/python3.6/site-packages/setuptools/command/py36compat.py", line 119, in _add_defaults_ext
build_ext = self.get_finalized_command('build_ext')
File "/app/.heroku/python/lib/python3.6/distutils/cmd.py", line 299, in get_finalized_command
cmd_obj.ensure_finalized()
File "/app/.heroku/python/lib/python3.6/distutils/cmd.py", line 107, in ensure_finalized
self.finalize_options()
File "/tmp/pip-build-w_oq7nbx/gdal/setup.py", line 214, in finalize_options
self.gdaldir = self.get_gdal_config('prefix')
File "/tmp/pip-build-w_oq7nbx/gdal/setup.py", line 188, in get_gdal_config
return fetch_config(option)
File "/tmp/pip-build-w_oq7nbx/gdal/setup.py", line 135, in fetch_config
raise gdal_config_error(e)
__main__.gdal_config_error: [Errno 2] No such file or directory: 'gdal-config'

最佳答案

  1. Python buildpack 方式:1.11.x 仅在使用 cedar-14 堆栈 时有效。如果设置环境变量:BUILD_WITH_GEO_LIBRARIES=1,Python buildpack 知道下载 GDAL、GEOS 和 PROJ。在这种情况下,GeoDjango 似乎能够很好地找到这些库。此方法从包含 GDAL 版本 1.11.5 的 S3 存储桶下载库和二进制文件。

  2. 自定义 buildpack 方式:一种更流行的启用地理功能的 buildpack 是 https://github.com/cyberdelia/heroku-geo-buildpack .在 cedar-14 堆栈 上,它开箱即用(删除 BUILD_WITH_GEO_LIBRARIES,清除您的 Heroku 构建器缓存,重新部署)。

    heroku-16 堆栈上,它没有正确设置 GDAL(如下所述),也没有为 a6f8e24 的 Django 设置环境变量。相反,您可以在 https://github.com/dschep/heroku-geo-buildpack 的构建包中使用修复程序(希望它最终会被合并)。 .您需要在 settings.py 中设置 GDAL_LIBRARY_PATHGEOS_LIBRARY_PATH(您可以使用 os.getenv('GDAL_LIBRARY_PATH') )。

延伸阅读:

在 heroku-16 堆栈上运行 Python 构建包(或 cyberdelia/heroku-geo-buildpack 构建包的 a6f8e24 提交)时,缺少 libjasper.so,因此 GDAL 库将无法成功加载。此外,Python buildpack 中的 $PATH 变量缺少供应商二进制文件,因此 gdal-config 无法开箱即用。

附录 A - 安装的地理库版本:

heroku-16:使用geos版本:3.6.1,使用gdal版本:2.1.3,使用proj版本:4.9.3

cedar-14:使用geos版本:3.4.2,使用gdal版本:1.11.1,使用proj版本:4.8.0_1

关于python - Heroku-16 堆栈中有什么变化使 GDAL 在 Python 中无法卸载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44806678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com