【问题标题】:Unable to deploy GIS due gdal-config not found由于未找到 gdal-config 无法部署 GIS
【发布时间】:2020-04-23 08:13:28
【问题描述】:

我一直在尝试在谷歌应用引擎中使用 gcloud 部署 GIS 数据一段时间,无论我尝试了多少不同的方法,我总是会停止在同一个错误上。使用dockfiler,没有它,使用pygdal,它将无法找到gdal-config,即标题。 system 和 virtualenv 版本相同。

gdal-config --libs -L/usr/lib -lgdal gdal-config --version 2.4.2 点冻结|grep pygdal 2.4.2.5 libgdal 2.4.2+dfsg-1~bionic0
系统ubuntu 18.0.4
我正在使用 VScode

这是我的 app.yaml

runtime: python
env: flex
entrypoint: gunicorn -b :$PORT app:app

runtime_config:
    python_version: 3

wsgi.py 文件

from app import app

if __name__ == "__main__":
    app.run(host='127.0.0.1', port=8080, debug=True)

launch.json 文件

{
        {
            "name": "Python: Flask",
            "type": "python",
            "request": "launch",
            "module": "flask",
            "env": {
                "FLASK_APP": "app.py",
                "FLASK_ENV": "development",
                "FLASK_DEBUG": "0"
            },
            "args": [
                "run",
                "--no-debugger",
                "--no-reload"
            ],
            "jinja": true
        }
    ]
}

requirements.txt 文件

astroid==2.3.3
attrs==19.3.0
autopep8==1.5.2
blinker==1.4
bokeh==1.3.4
click==7.1.1
click-plugins==1.1.1
cligj==0.5.0
dominate==2.5.1
Fiona==1.8.13.post1
Flask==1.1.2
Flask-Bootstrap==3.3.7.1
Flask-Mail==0.9.1
geopandas==0.7.0
gunicorn==20.0.4
isort==4.3.21
itsdangerous==1.1.0
Jinja2==2.11.2
lazy-object-proxy==1.4.3
MarkupSafe==1.1.1
mccabe==0.6.1
munch==2.5.0
numpy==1.18.3
packaging==20.3
pandas==1.0.3
Pillow==7.1.1
pycodestyle==2.5.0
pygdal==2.4.2.5
pylint==2.4.4
pyparsing==2.4.7
pyproj==2.6.0
python-dateutil==2.8.1
pytz==2019.3
PyYAML==5.3.1
Shapely==1.7.0
six==1.14.0
tornado==6.0.4
typed-ast==1.4.1
visitor==0.1.3
Werkzeug==1.0.1
wrapt==1.11.2
wtf==0.1

错误

Step #1: Collecting pygdal==2.4.2.5 (from -r requirements.txt (line 29))
Step #1:   Downloading https://files.pythonhosted.org/packages/59/2b/44f117abcf855a7bd6b8aa4432036d94229a2c6309277c3538def9e0568b/pygdal-2.4.2.5.tar.gz (446kB)
Step #1:     Complete output from command python setup.py egg_info:
Step #1:     running egg_info
Step #1:     creating pip-egg-info/pygdal.egg-info
Step #1:     writing pip-egg-info/pygdal.egg-info/PKG-INFO
Step #1:     writing dependency_links to pip-egg-info/pygdal.egg-info/dependency_links.txt
Step #1:     writing requirements to pip-egg-info/pygdal.egg-info/requires.txt
Step #1:     writing top-level names to pip-egg-info/pygdal.egg-info/top_level.txt
Step #1:     writing manifest file 'pip-egg-info/pygdal.egg-info/SOURCES.txt'
Step #1:     error: [Errno 2] No such file or directory: 'gdal-config': 'gdal-config'
Step #1:     
Step #1:     ----------------------------------------
Step #1: Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-8gfn0078/pygdal/
Step #1: You are using pip version 10.0.1, however version 20.1b1 is available.
Step #1: You should consider upgrading via the 'pip install --upgrade pip' command.
Step #1: The command '/bin/sh -c pip install -r requirements.txt' returned a non-zero code: 1
Finished Step #1
ERROR
ERROR: build step 1 "gcr.io/cloud-builders/docker@sha256:461bb53c226048a2f5eabebe1d8b4367a02d3a484a8cc7455a21377702bbf4f6" failed: step exited with non-zero status: 1
Step #1: 
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ERROR: (gcloud.app.deploy) Cloud build failed. Check logs at https://console.cloud.google.com/cloud-build/builds/c8d993a9-c897-462f-a68c-ca0a4b97e35d?project=791950161693 Failure status: UNKNOWN: Error Response: [2] Build failed; check build logs for details

先谢谢了,现在这很烦人。

【问题讨论】:

    标签: flask gis python-3.7 gcloud gdal


    【解决方案1】:

    这似乎是 GDAL 的一个问题,它一直在改变但很长时间没有修复。

    请查看以下提及不同解决方法的链接,以解决此问题。首先,我建议您让它在本地运行,然后使用绕过此问题所需的所有步骤将其 docker 化,最后尝试将其部署到 GAE Flex。

    Error: gdal-config not found

    https://docs.djangoproject.com/en/3.0/ref/contrib/gis/install/geolibs/

    https://gis.stackexchange.com/questions/28966/python-gdal-package-missing-header-file-when-installing-via-pip

    https://github.com/shaharkadmiel/pySW4/issues/16

    【讨论】:

    • 感谢@Waelmas,我之前已经阅读了所有预期的 djangoproject 并尝试了所有方法。我正在使用 anaconda,所以我也尝试了一个带有 anaconda 的 virtualenv,但我还是没有让它运行。我会继续尝试,尽管我开始怀疑是否有 GDAL 的替代库。你有什么建议?在本地,我的 webapp 运行得很好,当我尝试通过 gcloud 部署它时出现问题。我也看到了一些使用 .yaml 文件来设置安装 gdal 的帖子。
    • 我不确定有什么好的替代品可以推荐。但是,关于以不同的方式安装它,我建议您在 Dockerfile 中添加所需的所有步骤,就像用于在本地准备环境的步骤一样。这样它的行为就像你在本地拥有它一样。 (这意味着为 GAE Flex 创建您的自定义运行时环境)
    • 再次感谢您的时间和帮助。我将处理我的 dockerfile,我也下载了 gdal 指南。我很有信心这次会奏效。
    猜你喜欢
    • 2022-07-11
    • 1970-01-01
    • 2012-08-21
    • 1970-01-01
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    相关资源
    最近更新 更多