2013-09-27 5 views
3

Я пытаюсь установить GDAL ina virstualenvwrapper, следуя нескольким руководствам и ответам StackOverflow.python setup.py build_ext --include-dirs =/usr/include/gdal/not work

Я на убунту 13.04 я istalled ligbdal1 и libgdal1-dev

Внутри моего virtualenv Я попробовал:

pip install --no-install GDAL 

... и после того, как:

python setup.py build_ext --include-dirs=/usr/include/gdal/ 

, но я получаю это ошибки:

running build_ext 
building 'osgeo._gdal' extension 
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/gdal/ -I/usr/include/python2.7 -I/home/envs/test/local/lib/python2.7/site-packages/numpy/core/include -I/usr/include -c extensions/gdal_wrap.cpp -o build/temp.linux-x86_64-2.7/extensions/gdal_wrap.o 
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default] 
extensions/gdal_wrap.cpp: In function ‘int PyProgressProxy(double, const char*, void*)’: 
extensions/gdal_wrap.cpp:3237:2: warning: the address of ‘_Py_NoneStruct’ will never be NULL [-Waddress] 
extensions/gdal_wrap.cpp: In function ‘int GDALTransformerInfoShadow_TransformGeolocations(GDALTransformerInfoShadow*, GDALRasterBandShadow*, GDALRasterBandShadow*, GDALRasterBandShadow*, GDALProgressFunc, void*, char**)’: 
extensions/gdal_wrap.cpp:5010:69: error: ‘GDALTransformGeolocations’ was not declared in this scope 
extensions/gdal_wrap.cpp: In function ‘PyObject* _wrap_GOA2GetAuthorizationURL(PyObject*, PyObject*)’: 
extensions/gdal_wrap.cpp:5553:79: error: ‘GOA2GetAuthorizationURL’ was not declared in this scope 
extensions/gdal_wrap.cpp: In function ‘PyObject* _wrap_GOA2GetRefreshToken(PyObject*, PyObject*)’: 
extensions/gdal_wrap.cpp:5606:94: error: ‘GOA2GetRefreshToken’ was not declared in this scope 
extensions/gdal_wrap.cpp: In function ‘PyObject* _wrap_GOA2GetAccessToken(PyObject*, PyObject*)’: 
extensions/gdal_wrap.cpp:5661:93: error: ‘GOA2GetAccessToken’ was not declared in this scope 
extensions/gdal_wrap.cpp: In function ‘PyObject* _wrap_ReadDirRecursive(PyObject*, PyObject*)’: 
extensions/gdal_wrap.cpp:6081:61: error: ‘VSIReadDirRecursive’ was not declared in this scope 
extensions/gdal_wrap.cpp: In function ‘PyObject* _wrap_MajorObject_SetMetadata__SWIG_0(PyObject*, PyObject*)’: 
extensions/gdal_wrap.cpp:7501:31: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] 
extensions/gdal_wrap.cpp: In function ‘int GDALTransformerInfoShadow_TransformGeolocations(GDALTransformerInfoShadow*, GDALRasterBandShadow*, GDALRasterBandShadow*, GDALRasterBandShadow*, GDALProgressFunc, void*, char**)’: 
extensions/gdal_wrap.cpp:5011:3: warning: control reaches end of non-void function [-Wreturn-type] 
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1` 

Любые предложения? Где я могу ошибаться?

ответ

7

Похоже, что пакет libgdal1 на Ubuntu 13.04 уже устарел. Python cheeseshop (PyPi, который использует пип) предоставляет оболочку 1.10.0, а the 13.04 package list показывает, что предоставляется версия libgdal версии 1.9.0. По-видимому, в 1.10 был введен ряд новых функций, которые являются «не объявленными» ошибками, которые вы видите.

Таким образом, два варианта:

  • вручную установить libgdal 1.10. В этом случае вы, вероятно, можете использовать опцию --with-python для скрипта configure, и нет необходимости устанавливать отдельную привязку Python. Думаю, ты тоже в курсе последних и самых больших.

  • Загрузите устаревшую упаковку pdon gdal from the Python cheeseshop и продолжайте оттуда. Это, наверное, самый простой вариант.

+0

Я использовал второй вариант! Более простой ... Он работает .. Большое спасибо. –

+1

@ user566663 вы можете указать ответ как «ответ», чтобы помочь будущим посетителям, поэтому они знают, что есть рабочее решение (ну, по крайней мере, для вас, но, вероятно, больше людей). – Evert

+0

Большое спасибо, вы меня посадили! Версия missmatch, конечно же! Для меня это был python gdal 1.11.x и с gdal 1.10.x. –