Le mercredi 28 janvier 2015 19:08:18, Jorge Arévalo a écrit : > > Even Rouault <mailto:[email protected]> > > January 28, 2015 at 6:53 PM > > > > Le mercredi 28 janvier 2015 18:51:28, Jorge Arévalo a écrit : > >> Hi, > >> > >>> Even Rouault<mailto:[email protected]> > >>> January 28, 2015 at 6:44 PM > >>> Jorge, > >>> > >>>> I've compiled GDAL from trunk, specifying --with-python at configure > >>>> time. I first checked numpy is correctly installed. The problem is I > >>>> couldn't import gdal_array.py by default (got ImportError: no module > >>>> named _gdal_array). > >>>> > >>>> Tried > >>>> > >>>> python gdal_sources/swig/python/setup.py install > >>>> > >>>> Didn't work. > >>> > >>> "didn't work", could you be more precise ? > >>> "python setup.py install" requires root rights since it installs in > >>> /usr/local/lib. There's a ticket&debate if the python bindings should > >>> honour the --prefix specified at configure time or not. Currently they > >>> don't, and it is an annoyance for folks. Perhaps we should revert to > >>> honour the prefix, but this was disabled at some point and nobody > >>> remembers why... > >> > >> Yes, I felt the pain of python bindings don't honouring the --prefix > >> specified... Good to know there's a debate on this. > >> > >> Sorry about my vague description. I just did it using sudo, for a system > >> installation, and after that, system Python still didn't find the path. > >> So, after > >> > >> sudo python gdal_sources/swig/python/setup.py install > >> > >> I still get the same error: > >> > >> ImportError: no module named _gdal_array > > > > Are you sure you don't have a python-gdal package hanging somewhere ? > > (but that would be weird it wouldn't have numpy support). Or a custom > > python-gdal bindings installed in another location that is tried before > > the one where you install. > > Yep. Looked for gdal packages: > > dpkg-query --show --showformat='${Package;-50}\t${Installed-Size}\n' | > sort -k 2 -n | grep -v deinstall | awk '{printf "%.3f MB \t %s\n", > $2/(1024), $1}' | grep gdal > > 0 found. Just installed GDAL from sources, using this line > > ./configure --with-python --without-libtool > --with-curl=/usr/bin/curl-config > > Also looked for any existent gdal_array.py > > sudo find / -name gdal_array.py > > Just found the one in my sources tree, and the system one at > /usr/local/lib/python2.7/dist-packages/osgeo/gdal_array.py. > > If I print sys.path from Python console, I get: > > ['', '/home/jorge', '/usr/lib/python2.7', > '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', > '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', > '/usr/local/lib/python2.7/dist-packages', > '/usr/lib/python2.7/dist-packages', > '/usr/lib/python2.7/dist-packages/PILcompat']
Trying the same with python2.6, I have the following in sys.path : '/usr/local/lib/python2.6/dist-packages/GDAL-2.0.0-py2.6-linux-x86_64.egg' And 'from osgeo import gdal_array' works without PYTHONPATH defined What is the output of "python setup.py install" ? Mine for reference : $ sudo python setup.py install running install running bdist_egg running egg_info creating GDAL.egg-info writing GDAL.egg-info/PKG-INFO writing top-level names to GDAL.egg-info/top_level.txt writing dependency_links to GDAL.egg-info/dependency_links.txt writing manifest file 'GDAL.egg-info/SOURCES.txt' writing manifest file 'GDAL.egg-info/SOURCES.txt' installing library code to build/bdist.linux-x86_64/egg running install_lib running build_py running build_ext creating build/bdist.linux-x86_64 creating build/bdist.linux-x86_64/egg copying build/lib.linux-x86_64-2.6/gdal.py -> build/bdist.linux-x86_64/egg creating build/bdist.linux-x86_64/egg/osgeo copying build/lib.linux-x86_64-2.6/osgeo/gdal.py -> build/bdist.linux-x86_64/egg/osgeo copying build/lib.linux-x86_64-2.6/osgeo/_gdalconst.so -> build/bdist.linux-x86_64/egg/osgeo copying build/lib.linux-x86_64-2.6/osgeo/__init__.py -> build/bdist.linux-x86_64/egg/osgeo copying build/lib.linux-x86_64-2.6/osgeo/__init__.pyc -> build/bdist.linux-x86_64/egg/osgeo copying build/lib.linux-x86_64-2.6/osgeo/gdalconst.pyc -> build/bdist.linux-x86_64/egg/osgeo copying build/lib.linux-x86_64-2.6/osgeo/_gdal.so -> build/bdist.linux-x86_64/egg/osgeo copying build/lib.linux-x86_64-2.6/osgeo/ogr.pyc -> build/bdist.linux-x86_64/egg/osgeo copying build/lib.linux-x86_64-2.6/osgeo/gdalnumeric.py -> build/bdist.linux-x86_64/egg/osgeo copying build/lib.linux-x86_64-2.6/osgeo/_gdal_array.so -> build/bdist.linux-x86_64/egg/osgeo copying build/lib.linux-x86_64-2.6/osgeo/gdalconst.py -> build/bdist.linux-x86_64/egg/osgeo copying build/lib.linux-x86_64-2.6/osgeo/ogr.py -> build/bdist.linux-x86_64/egg/osgeo copying build/lib.linux-x86_64-2.6/osgeo/osr.pyc -> build/bdist.linux-x86_64/egg/osgeo copying build/lib.linux-x86_64-2.6/osgeo/gdal_array.py -> build/bdist.linux-x86_64/egg/osgeo copying build/lib.linux-x86_64-2.6/osgeo/gdal.pyc -> build/bdist.linux-x86_64/egg/osgeo copying build/lib.linux-x86_64-2.6/osgeo/osr.py -> build/bdist.linux-x86_64/egg/osgeo copying build/lib.linux-x86_64-2.6/osgeo/_ogr.so -> build/bdist.linux-x86_64/egg/osgeo copying build/lib.linux-x86_64-2.6/osgeo/_osr.so -> build/bdist.linux-x86_64/egg/osgeo copying build/lib.linux-x86_64-2.6/gdalnumeric.py -> build/bdist.linux-x86_64/egg copying build/lib.linux-x86_64-2.6/gdalconst.py -> build/bdist.linux-x86_64/egg copying build/lib.linux-x86_64-2.6/ogr.py -> build/bdist.linux-x86_64/egg copying build/lib.linux-x86_64-2.6/osr.py -> build/bdist.linux-x86_64/egg byte-compiling build/bdist.linux-x86_64/egg/gdal.py to gdal.pyc byte-compiling build/bdist.linux-x86_64/egg/osgeo/gdalnumeric.py to gdalnumeric.pyc byte-compiling build/bdist.linux-x86_64/egg/osgeo/gdal_array.py to gdal_array.pyc byte-compiling build/bdist.linux-x86_64/egg/gdalnumeric.py to gdalnumeric.pyc byte-compiling build/bdist.linux-x86_64/egg/gdalconst.py to gdalconst.pyc byte-compiling build/bdist.linux-x86_64/egg/ogr.py to ogr.pyc byte-compiling build/bdist.linux-x86_64/egg/osr.py to osr.pyc creating stub loader for osgeo/_gdal.so creating stub loader for osgeo/_gdalconst.so creating stub loader for osgeo/_osr.so creating stub loader for osgeo/_ogr.so creating stub loader for osgeo/_gdal_array.so byte-compiling build/bdist.linux-x86_64/egg/osgeo/_gdal.py to _gdal.pyc byte-compiling build/bdist.linux-x86_64/egg/osgeo/_gdalconst.py to _gdalconst.pyc byte-compiling build/bdist.linux-x86_64/egg/osgeo/_osr.py to _osr.pyc byte-compiling build/bdist.linux-x86_64/egg/osgeo/_ogr.py to _ogr.pyc byte-compiling build/bdist.linux-x86_64/egg/osgeo/_gdal_array.py to _gdal_array.pyc creating build/bdist.linux-x86_64/egg/EGG-INFO copying GDAL.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO copying GDAL.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO copying GDAL.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO copying GDAL.egg-info/not-zip-safe -> build/bdist.linux-x86_64/egg/EGG-INFO copying GDAL.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO writing build/bdist.linux-x86_64/egg/EGG-INFO/native_libs.txt creating dist creating 'dist/GDAL-2.0.0-py2.6-linux-x86_64.egg' and adding 'build/bdist.linux-x86_64/egg' to it removing 'build/bdist.linux-x86_64/egg' (and everything under it) Processing GDAL-2.0.0-py2.6-linux-x86_64.egg creating /usr/local/lib/python2.6/dist-packages/GDAL-2.0.0-py2.6-linux-x86_64.egg Extracting GDAL-2.0.0-py2.6-linux-x86_64.egg to /usr/local/lib/python2.6/dist-packages Adding GDAL 2.0.0 to easy-install.pth file Installed /usr/local/lib/python2.6/dist-packages/GDAL-2.0.0-py2.6-linux-x86_64.egg Processing dependencies for GDAL==2.0.0 Finished processing dependencies for GDAL==2.0.0 > > So, /usr/local/lib/python2.7/dist-packages is included, but > /usr/local/lib/python2.7/dist-packages/osgeo doesn't. I tried with > > from osgeo import gdal_array > > And then, I get ImportError: no module named _gdal > > >>>> I finally had to define > >>>> > >>>> export > >>>> PYTHONPATH=$PYTHONPATH:$/usr/local/lib/python2.7/dist-packages/osgeo Should rather be PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/dist-packages (without the final osgeo) actually > >>>> > >>>> to make it work. And I don't think that's the default solution, right? > >>> > >>> That's what I use since I have many GDAL versions on my machine and > >>> must switch between them without reinstalling. For regular users not > >>> tweaking the installation prefix, "sudo make install" should do the > >>> right thing however. > >> > >> Yep, that was what I thought. But still fails after sudo make install. > >> The only way I've found to make it work is by exporting PYTHONPATH > >> > >> Best regards, > >> > >> Jorge > >> > >>>> Am I doing something wrong? > >>>> > >>>> Environment: Ubuntu 14.10, GDAL from trunk, Python 2.7.8 > >>> > >>> Even > > > > Even Rouault <mailto:[email protected]> > > January 28, 2015 at 6:44 PM > > Jorge, > > > >> I've compiled GDAL from trunk, specifying --with-python at configure > >> time. I first checked numpy is correctly installed. The problem is I > >> couldn't import gdal_array.py by default (got ImportError: no module > >> named _gdal_array). > >> > >> Tried > >> > >> python gdal_sources/swig/python/setup.py install > >> > >> Didn't work. > > > > "didn't work", could you be more precise ? > > "python setup.py install" requires root rights since it installs in > > /usr/local/lib. There's a ticket&debate if the python bindings should > > honour the --prefix specified at configure time or not. Currently they > > don't, and it is an annoyance for folks. Perhaps we should revert to > > honour the prefix, but this was disabled at some point and nobody > > remembers why... > > > >> I finally had to define > >> > >> export > >> PYTHONPATH=$PYTHONPATH:$/usr/local/lib/python2.7/dist-packages/osgeo > >> > >> to make it work. And I don't think that's the default solution, right? > > > > That's what I use since I have many GDAL versions on my machine and must > > switch between them without reinstalling. For regular users not tweaking > > the installation prefix, "sudo make install" should do the right thing > > however. > > > >> Am I doing something wrong? > >> > >> Environment: Ubuntu 14.10, GDAL from trunk, Python 2.7.8 > > > > Even -- Spatialys - Geospatial professional services http://www.spatialys.com _______________________________________________ gdal-dev mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/gdal-dev
