python - 无法在 Heroku 上安装 GDAL:缺少头文件
问题描述
我一直在尝试将我的 Django 应用程序部署到 Heroku,但由于连接到 Gdal 的错误,它一直失败。
我在这个过程中遇到了不同的问题,并找到了几个建议,但没有一个奏效。我尝试了一些事情:#
根据 SO 和 GitHub 上的不同建议,向 Aptfile 添加了几个包,但没有成功。
将 GDAL 从 requirements.txt 文件中移出,因为这似乎会导致其他错误。还尝试安装较旧版本的 GDAL @ 2.2.0,因为一些评论建议系统版本不应早于 Python 包。
我不断收到有关缺少头文件的错误消息:
Collecting GDAL==3.2.0
Downloading GDAL-3.2.0.tar.gz (602 kB)
Building wheels for collected packages: GDAL
Building wheel for GDAL (setup.py): started
Building wheel for GDAL (setup.py): finished with status 'error'
ERROR: Command errored out with exit status 1:
command: /app/.heroku/python/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-nttph3yx/GDAL/setup.py'"'"'; __file__='"'"'/tmp/pip-install-nttph3yx/GDAL/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-z6r3jxu4
cwd: /tmp/pip-install-nttph3yx/GDAL/
Complete output (71 lines):
WARNING: numpy not available! Array support will not be enabled
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.8
creating build/lib.linux-x86_64-3.8/osgeo
copying osgeo/gnm.py -> build/lib.linux-x86_64-3.8/osgeo
copying osgeo/osr.py -> build/lib.linux-x86_64-3.8/osgeo
copying osgeo/ogr.py -> build/lib.linux-x86_64-3.8/osgeo
copying osgeo/gdalnumeric.py -> build/lib.linux-x86_64-3.8/osgeo
copying osgeo/gdalconst.py -> build/lib.linux-x86_64-3.8/osgeo
copying osgeo/__init__.py -> build/lib.linux-x86_64-3.8/osgeo
copying osgeo/gdal.py -> build/lib.linux-x86_64-3.8/osgeo
copying osgeo/gdal_array.py -> build/lib.linux-x86_64-3.8/osgeo
creating build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/pct2rgb.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdal_pansharpen.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdalmove.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdal_sieve.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdal_fillnodata.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdalchksum.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/mkgraticule.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdal_retile.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/epsg_tr.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdalimport.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdal_proximity.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/ogrmerge.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdal_auth.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/esri2wkt.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdal_calc.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/__init__.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdalcompare.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdalident.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdal2xyz.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gcps2wld.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdal_edit.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/rgb2pct.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdal_merge.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdal_polygonize.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gcps2vec.py -> build/lib.linux-x86_64-3.8/osgeo/utils
/app/.heroku/python/lib/python3.8/site-packages/setuptools/lib2to3_ex.py:39: SetuptoolsDeprecationWarning: 2to3 support is deprecated. If the project still requires Python 2 support, please migrate to a single-codebase solution or employ an independent conversion process.
warnings.warn(
Fixing build/lib.linux-x86_64-3.8/osgeo/gnm.py build/lib.linux-x86_64-3.8/osgeo/osr.py build/lib.linux-x86_64-3.8/osgeo/ogr.py build/lib.linux-x86_64-3.8/osgeo/gdalnumeric.py build/lib.linux-x86_64-3.8/osgeo/gdalconst.py build/lib.linux-x86_64-3.8/osgeo/__init__.py build/lib.linux-x86_64-3.8/osgeo/gdal.py build/lib.linux-x86_64-3.8/osgeo/gdal_array.py build/lib.linux-x86_64-3.8/osgeo/utils/pct2rgb.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_pansharpen.py build/lib.linux-x86_64-3.8/osgeo/utils/gdalmove.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_sieve.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_fillnodata.py build/lib.linux-x86_64-3.8/osgeo/utils/gdalchksum.py build/lib.linux-x86_64-3.8/osgeo/utils/mkgraticule.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_retile.py build/lib.linux-x86_64-3.8/osgeo/utils/epsg_tr.py build/lib.linux-x86_64-3.8/osgeo/utils/gdalimport.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_proximity.py build/lib.linux-x86_64-3.8/osgeo/utils/ogrmerge.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_auth.py build/lib.linux-x86_64-3.8/osgeo/utils/esri2wkt.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_calc.py build/lib.linux-x86_64-3.8/osgeo/utils/__init__.py build/lib.linux-x86_64-3.8/osgeo/utils/gdalcompare.py build/lib.linux-x86_64-3.8/osgeo/utils/gdalident.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal2xyz.py build/lib.linux-x86_64-3.8/osgeo/utils/gcps2wld.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_edit.py build/lib.linux-x86_64-3.8/osgeo/utils/rgb2pct.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_merge.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_polygonize.py build/lib.linux-x86_64-3.8/osgeo/utils/gcps2vec.py
Skipping optional fixer: ws_comma
Fixing build/lib.linux-x86_64-3.8/osgeo/gnm.py build/lib.linux-x86_64-3.8/osgeo/osr.py build/lib.linux-x86_64-3.8/osgeo/ogr.py build/lib.linux-x86_64-3.8/osgeo/gdalnumeric.py build/lib.linux-x86_64-3.8/osgeo/gdalconst.py build/lib.linux-x86_64-3.8/osgeo/__init__.py build/lib.linux-x86_64-3.8/osgeo/gdal.py build/lib.linux-x86_64-3.8/osgeo/gdal_array.py build/lib.linux-x86_64-3.8/osgeo/utils/pct2rgb.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_pansharpen.py build/lib.linux-x86_64-3.8/osgeo/utils/gdalmove.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_sieve.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_fillnodata.py build/lib.linux-x86_64-3.8/osgeo/utils/gdalchksum.py build/lib.linux-x86_64-3.8/osgeo/utils/mkgraticule.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_retile.py build/lib.linux-x86_64-3.8/osgeo/utils/epsg_tr.py build/lib.linux-x86_64-3.8/osgeo/utils/gdalimport.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_proximity.py build/lib.linux-x86_64-3.8/osgeo/utils/ogrmerge.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_auth.py build/lib.linux-x86_64-3.8/osgeo/utils/esri2wkt.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_calc.py build/lib.linux-x86_64-3.8/osgeo/utils/__init__.py build/lib.linux-x86_64-3.8/osgeo/utils/gdalcompare.py build/lib.linux-x86_64-3.8/osgeo/utils/gdalident.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal2xyz.py build/lib.linux-x86_64-3.8/osgeo/utils/gcps2wld.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_edit.py build/lib.linux-x86_64-3.8/osgeo/utils/rgb2pct.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_merge.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_polygonize.py build/lib.linux-x86_64-3.8/osgeo/utils/gcps2vec.py
Skipping optional fixer: ws_comma
running build_ext
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I../../port -I../../gcore -I../../alg -I../../ogr/ -I../../ogr/ogrsf_frmts -I../../gnm -I../../apps -I/app/.heroku/python/include/python3.8 -I. -I/tmp/tmp.4yGFZUL3To/include -c gdal_python_cxx11_test.cpp -o gdal_python_cxx11_test.o
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I../../port -I../../gcore -I../../alg -I../../ogr/ -I../../ogr/ogrsf_frmts -I../../gnm -I../../apps -I/app/.heroku/python/include/python3.8 -I. -I/tmp/tmp.4yGFZUL3To/include -c gdal_python_cxx11_test.cpp -o gdal_python_cxx11_test.o -std=c++11
building 'osgeo._gdal' extension
building 'osgeo._gdalconst' extension
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/extensions
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I../../port -I../../gcore -I../../alg -I../../ogr/ -I../../ogr/ogrsf_frmts -I../../gnm -I../../apps -I/app/.heroku/python/include/python3.8 -I. -I/tmp/tmp.4yGFZUL3To/include -c extensions/gdalconst_wrap.c -o build/temp.linux-x86_64-3.8/extensions/gdalconst_wrap.o -I/tmp/tmp.4yGFZUL3To/include
building 'osgeo._osr' extension
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I../../port -I../../gcore -I../../alg -I../../ogr/ -I../../ogr/ogrsf_frmts -I../../gnm -I../../apps -I/app/.heroku/python/include/python3.8 -I. -I/tmp/tmp.4yGFZUL3To/include -c extensions/osr_wrap.cpp -o build/temp.linux-x86_64-3.8/extensions/osr_wrap.o -I/tmp/tmp.4yGFZUL3To/include
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I../../port -I../../gcore -I../../alg -I../../ogr/ -I../../ogr/ogrsf_frmts -I../../gnm -I../../apps -I/app/.heroku/python/include/python3.8 -I. -I/tmp/tmp.4yGFZUL3To/include -c extensions/gdal_wrap.cpp -o build/temp.linux-x86_64-3.8/extensions/gdal_wrap.o -I/tmp/tmp.4yGFZUL3To/include
building 'osgeo._ogr' extension
gcc: error trying to exec 'cc1plus': execvp: No such file or directory
gcc: error trying to exec 'cc1plus': execvp: No such file or directory
building 'osgeo._gnm' extension
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I../../port -I../../gcore -I../../alg -I../../ogr/ -I../../ogr/ogrsf_frmts -I../../gnm -I../../apps -I/app/.heroku/python/include/python3.8 -I. -I/tmp/tmp.4yGFZUL3To/include -c extensions/ogr_wrap.cpp -o build/temp.linux-x86_64-3.8/extensions/ogr_wrap.o -I/tmp/tmp.4yGFZUL3To/include
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I../../port -I../../gcore -I../../alg -I../../ogr/ -I../../ogr/ogrsf_frmts -I../../gnm -I../../apps -I/app/.heroku/python/include/python3.8 -I. -I/tmp/tmp.4yGFZUL3To/include -c extensions/gnm_wrap.cpp -o build/temp.linux-x86_64-3.8/extensions/gnm_wrap.o -I/tmp/tmp.4yGFZUL3To/include
gcc: error trying to exec 'cc1plus': execvp: No such file or directory
gcc: error trying to exec 'cc1plus': execvp: No such file or directory
extensions/gdalconst_wrap.c:3018:10: fatal error: gdal.h: No such file or directory
#include "gdal.h"
^~~~~~~~
compilation terminated.
error: command 'gcc' failed with exit status 1
----------------------------------------
ERROR: Failed building wheel for GDAL
Running setup.py clean for GDAL
Failed to build GDAL
Installing collected packages: GDAL
Running setup.py install for GDAL: started
Running setup.py install for GDAL: finished with status 'error'
ERROR: Command errored out with exit status 1:
command: /app/.heroku/python/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-nttph3yx/GDAL/setup.py'"'"'; __file__='"'"'/tmp/pip-install-nttph3yx/GDAL/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-p1uoroos/install-record.txt --single-version-externally-managed --compile --install-headers /app/.heroku/python/include/python3.8/GDAL
cwd: /tmp/pip-install-nttph3yx/GDAL/
Complete output (72 lines):
WARNING: numpy not available! Array support will not be enabled
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.8
creating build/lib.linux-x86_64-3.8/osgeo
copying osgeo/gnm.py -> build/lib.linux-x86_64-3.8/osgeo
copying osgeo/osr.py -> build/lib.linux-x86_64-3.8/osgeo
copying osgeo/ogr.py -> build/lib.linux-x86_64-3.8/osgeo
copying osgeo/gdalnumeric.py -> build/lib.linux-x86_64-3.8/osgeo
copying osgeo/gdalconst.py -> build/lib.linux-x86_64-3.8/osgeo
copying osgeo/__init__.py -> build/lib.linux-x86_64-3.8/osgeo
copying osgeo/gdal.py -> build/lib.linux-x86_64-3.8/osgeo
copying osgeo/gdal_array.py -> build/lib.linux-x86_64-3.8/osgeo
creating build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/pct2rgb.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdal_pansharpen.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdalmove.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdal_sieve.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdal_fillnodata.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdalchksum.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/mkgraticule.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdal_retile.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/epsg_tr.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdalimport.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdal_proximity.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/ogrmerge.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdal_auth.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/esri2wkt.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdal_calc.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/__init__.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdalcompare.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdalident.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdal2xyz.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gcps2wld.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdal_edit.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/rgb2pct.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdal_merge.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gdal_polygonize.py -> build/lib.linux-x86_64-3.8/osgeo/utils
copying osgeo/utils/gcps2vec.py -> build/lib.linux-x86_64-3.8/osgeo/utils
/app/.heroku/python/lib/python3.8/site-packages/setuptools/lib2to3_ex.py:39: SetuptoolsDeprecationWarning: 2to3 support is deprecated. If the project still requires Python 2 support, please migrate to a single-codebase solution or employ an independent conversion process.
warnings.warn(
Fixing build/lib.linux-x86_64-3.8/osgeo/gnm.py build/lib.linux-x86_64-3.8/osgeo/osr.py build/lib.linux-x86_64-3.8/osgeo/ogr.py build/lib.linux-x86_64-3.8/osgeo/gdalnumeric.py build/lib.linux-x86_64-3.8/osgeo/gdalconst.py build/lib.linux-x86_64-3.8/osgeo/__init__.py build/lib.linux-x86_64-3.8/osgeo/gdal.py build/lib.linux-x86_64-3.8/osgeo/gdal_array.py build/lib.linux-x86_64-3.8/osgeo/utils/pct2rgb.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_pansharpen.py build/lib.linux-x86_64-3.8/osgeo/utils/gdalmove.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_sieve.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_fillnodata.py build/lib.linux-x86_64-3.8/osgeo/utils/gdalchksum.py build/lib.linux-x86_64-3.8/osgeo/utils/mkgraticule.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_retile.py build/lib.linux-x86_64-3.8/osgeo/utils/epsg_tr.py build/lib.linux-x86_64-3.8/osgeo/utils/gdalimport.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_proximity.py build/lib.linux-x86_64-3.8/osgeo/utils/ogrmerge.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_auth.py build/lib.linux-x86_64-3.8/osgeo/utils/esri2wkt.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_calc.py build/lib.linux-x86_64-3.8/osgeo/utils/__init__.py build/lib.linux-x86_64-3.8/osgeo/utils/gdalcompare.py build/lib.linux-x86_64-3.8/osgeo/utils/gdalident.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal2xyz.py build/lib.linux-x86_64-3.8/osgeo/utils/gcps2wld.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_edit.py build/lib.linux-x86_64-3.8/osgeo/utils/rgb2pct.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_merge.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_polygonize.py build/lib.linux-x86_64-3.8/osgeo/utils/gcps2vec.py
Skipping optional fixer: ws_comma
Fixing build/lib.linux-x86_64-3.8/osgeo/gnm.py build/lib.linux-x86_64-3.8/osgeo/osr.py build/lib.linux-x86_64-3.8/osgeo/ogr.py build/lib.linux-x86_64-3.8/osgeo/gdalnumeric.py build/lib.linux-x86_64-3.8/osgeo/gdalconst.py build/lib.linux-x86_64-3.8/osgeo/__init__.py build/lib.linux-x86_64-3.8/osgeo/gdal.py build/lib.linux-x86_64-3.8/osgeo/gdal_array.py build/lib.linux-x86_64-3.8/osgeo/utils/pct2rgb.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_pansharpen.py build/lib.linux-x86_64-3.8/osgeo/utils/gdalmove.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_sieve.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_fillnodata.py build/lib.linux-x86_64-3.8/osgeo/utils/gdalchksum.py build/lib.linux-x86_64-3.8/osgeo/utils/mkgraticule.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_retile.py build/lib.linux-x86_64-3.8/osgeo/utils/epsg_tr.py build/lib.linux-x86_64-3.8/osgeo/utils/gdalimport.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_proximity.py build/lib.linux-x86_64-3.8/osgeo/utils/ogrmerge.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_auth.py build/lib.linux-x86_64-3.8/osgeo/utils/esri2wkt.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_calc.py build/lib.linux-x86_64-3.8/osgeo/utils/__init__.py build/lib.linux-x86_64-3.8/osgeo/utils/gdalcompare.py build/lib.linux-x86_64-3.8/osgeo/utils/gdalident.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal2xyz.py build/lib.linux-x86_64-3.8/osgeo/utils/gcps2wld.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_edit.py build/lib.linux-x86_64-3.8/osgeo/utils/rgb2pct.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_merge.py build/lib.linux-x86_64-3.8/osgeo/utils/gdal_polygonize.py build/lib.linux-x86_64-3.8/osgeo/utils/gcps2vec.py
Skipping optional fixer: ws_comma
running build_ext
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I../../port -I../../gcore -I../../alg -I../../ogr/ -I../../ogr/ogrsf_frmts -I../../gnm -I../../apps -I/app/.heroku/python/include/python3.8 -I. -I/tmp/tmp.4yGFZUL3To/include -c gdal_python_cxx11_test.cpp -o gdal_python_cxx11_test.o
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I../../port -I../../gcore -I../../alg -I../../ogr/ -I../../ogr/ogrsf_frmts -I../../gnm -I../../apps -I/app/.heroku/python/include/python3.8 -I. -I/tmp/tmp.4yGFZUL3To/include -c gdal_python_cxx11_test.cpp -o gdal_python_cxx11_test.o -std=c++11
building 'osgeo._gdalconst' extension
building 'osgeo._osr' extension
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8
building 'osgeo._gdal' extension
creating build/temp.linux-x86_64-3.8/extensions
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I../../port -I../../gcore -I../../alg -I../../ogr/ -I../../ogr/ogrsf_frmts -I../../gnm -I../../apps -I/app/.heroku/python/include/python3.8 -I. -I/tmp/tmp.4yGFZUL3To/include -c extensions/gdal_wrap.cpp -o build/temp.linux-x86_64-3.8/extensions/gdal_wrap.o -I/tmp/tmp.4yGFZUL3To/include
building 'osgeo._ogr' extension
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I../../port -I../../gcore -I../../alg -I../../ogr/ -I../../ogr/ogrsf_frmts -I../../gnm -I../../apps -I/app/.heroku/python/include/python3.8 -I. -I/tmp/tmp.4yGFZUL3To/include -c extensions/ogr_wrap.cpp -o build/temp.linux-x86_64-3.8/extensions/ogr_wrap.o -I/tmp/tmp.4yGFZUL3To/include
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I../../port -I../../gcore -I../../alg -I../../ogr/ -I../../ogr/ogrsf_frmts -I../../gnm -I../../apps -I/app/.heroku/python/include/python3.8 -I. -I/tmp/tmp.4yGFZUL3To/include -c extensions/gdalconst_wrap.c -o build/temp.linux-x86_64-3.8/extensions/gdalconst_wrap.o -I/tmp/tmp.4yGFZUL3To/include
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I../../port -I../../gcore -I../../alg -I../../ogr/ -I../../ogr/ogrsf_frmts -I../../gnm -I../../apps -I/app/.heroku/python/include/python3.8 -I. -I/tmp/tmp.4yGFZUL3To/include -c extensions/osr_wrap.cpp -o build/temp.linux-x86_64-3.8/extensions/osr_wrap.o -I/tmp/tmp.4yGFZUL3To/include
gcc: error trying to exec 'cc1plus': execvpgcc: : error trying to exec 'cc1plus': execvp: No such file or directory
No such file or directory
building 'osgeo._gnm' extension
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I../../port -I../../gcore -I../../alg -I../../ogr/ -I../../ogr/ogrsf_frmts -I../../gnm -I../../apps -I/app/.heroku/python/include/python3.8 -I. -I/tmp/tmp.4yGFZUL3To/include -c extensions/gnm_wrap.cpp -o build/temp.linux-x86_64-3.8/extensions/gnm_wrap.o -I/tmp/tmp.4yGFZUL3To/include
gcc: error trying to exec 'cc1plus': execvp: No such file or directory
gcc: error trying to exec 'cc1plus': execvp: No such file or directory
extensions/gdalconst_wrap.c:3018:10: fatal error: gdal.h: No such file or directory
#include "gdal.h"
^~~~~~~~
compilation terminated.
error: command 'gcc' failed with exit status 1
----------------------------------------
ERROR: Command errored out with exit status 1: /app/.heroku/python/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-nttph3yx/GDAL/setup.py'"'"'; __file__='"'"'/tmp/pip-install-nttph3yx/GDAL/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-p1uoroos/install-record.txt --single-version-externally-managed --compile --install-headers /app/.heroku/python/include/python3.8/GDAL Check the logs for full command output.
目前,我正在使用以下设置:
Heroku 构建包:
1. heroku-community/apt
2. https://github.com/heroku/heroku-geo-buildpack.git
3. heroku/python
Heroku 配置:
CPLUS_INCLUDE_PATH: /usr/include/gdal
C_INCLUDE_PATH: /usr/include/gdal
文件
gdal-bin
libgdal-dev
libgdal1h
python-gdal
pygdal
档案
release: python artisan/manage.py migrate
release: pip install GDAL==3.2.0
web: gunicorn --pythonpath artisan artisan.wsgi --log-file -
任何指针如何解决这个非常感谢......
解决方案
推荐阅读
- ms-access - MS Access - 主键中的重复值?
- cryptography - 用我自己的替换 Microsoft Teams SRTP 密钥
- python - 我在哪里可以找到 voila 元数据中可用的参数列表?
- swift - SwiftPM 中目标的条件依赖
- javascript - 故事书:无法为 scss 文件添加源地图
- javascript - D3:当鼠标动作起作用时,动画不会结束
- sql - 带有条件的 PostgreSQL 更新
- datagrid - Material-ui 数据网格过滤器在临时抽屉中不起作用
- sapui5 - 使用 sap.m.Input 时如何显示禁用的建议项
- python - 安装 pybdf 时没有名为 numpy 的模块