用pip将gdal == 2.3.3安装到venv中

时间:2020-02-16 20:27:59

标签: python gcloud gdal

我正在将anaconda与python 3.7.4结合使用,并且正在使用VScode。我目前正在用Flask创建一个Flask Webapp,我正在google app engine(gcloud)上进行部署。为了使用GIS,我需要安装geopandas,这将需要gdal,fiona,rtree,shapely,pyproj,numpy等。我在虚拟环境中工作,因此可以使用pip install [file.whl]直接安装.whl文件,它将在本地正常工作。我还为gdal_data创建了环境变量,并将其也添加到了他的PATH变量中。因此,自从我安装了geopandas以来,我一直在尝试部署该应用程序,而google却让我发现找不到gdal-config的错误。我对相关性和部署的了解不足,因此尝试对其进行深入研究。我发现的是以下内容:

conda将取代gdal 3.0.4并安装gdal 2.3.3 pip没有此版本,当涉及到问题时。 只要我了解它,Google就会使用我的requirements.txt将我在虚拟环境中使用的库安装到它们的云环境中,因此一旦pip找不到我将通过的gdal 2.3.3版本,就会抛出一个错误到我的requirements.txt和我手动安装的那个。 另外,作为构建GIS绘图的重要手段之一的fiona与conda坚持要取代的gdal版本不兼容。

我已经阅读了很多书,并花了大量时间处理此错误。有很多有关Linux的信息,但是我找不到任何可以帮助我的信息。

如果有人在那里可以帮助我,将不胜感激。

1 个答案:

答案 0 :(得分:1)

在安装gdal时我遇到了同样的问题:

... 主要 .gdal_config_error:[错误2]没有此类文件或目录:'gdal-config':'gdal-config'...

问题是底层docker容器没有运行此gdal版本所需的C库。因此,您不能使用默认的App Engine环境来运行您的应用程序。

然后的解决方案是创建一个自定义runtime(即docker容器)以运行您的App Engine实例。另一个stackoverflow post说明了如何正确执行此操作。

最重要的步骤包括:

sudo apt-get install gdal-bin python-gdal