Reputation: 3098
Let me start by saying that I have searched for help this problem and gone through the numerous threads that I have found, and none of them have worked, or I wasn't able to understand what they are saying to do.
Once such thread is here: Python GDAL package missing header file when installing via pip
I was able to run
pip install --no-install GDAL
But then I was instructed to
cd into ENV/build/GDAL
I know what cd
means but I have no idea where this /ENV/build/GDAL
diretory would be located and there is no more information about it in the post, or in the post that it references.
The core problem is just that I want to install GDAL for use in Python. I tried
pip install GDAL
and it failed with this output:
Collecting GDAL
Using cached GDAL-2.0.1.tar.gz
Installing collected packages: GDAL
Running setup.py install for GDAL
Complete output from command c:\users\isaac\appdata\local\programs\python\python35-32\python.exe -c "import setuptools, tokenize;__file__='C:\\Users\\Isaac\\AppData\\Local\\Temp\\pip-build-4kmkv1_4\\GDAL\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\Users\Isaac\AppData\Local\Temp\pip-fxko2gfx-record\install-record.txt --single-version-externally-managed --compile:
running install
running build
running build_py
creating build
creating build\lib.win32-3.5
copying gdal.py -> build\lib.win32-3.5
copying ogr.py -> build\lib.win32-3.5
copying osr.py -> build\lib.win32-3.5
copying gdalconst.py -> build\lib.win32-3.5
creating build\lib.win32-3.5\osgeo
copying osgeo\gdal.py -> build\lib.win32-3.5\osgeo
copying osgeo\gdalconst.py -> build\lib.win32-3.5\osgeo
copying osgeo\gdalnumeric.py -> build\lib.win32-3.5\osgeo
copying osgeo\gdal_array.py -> build\lib.win32-3.5\osgeo
copying osgeo\ogr.py -> build\lib.win32-3.5\osgeo
copying osgeo\osr.py -> build\lib.win32-3.5\osgeo
copying osgeo\__init__.py -> build\lib.win32-3.5\osgeo
Fixing build\lib.win32-3.5\gdal.py build\lib.win32-3.5\ogr.py build\lib.win32-3.5\osr.py build\lib.win32-3.5\gdalconst.py build\lib.win32-3.5\osgeo\gdal.py build\lib.win32-3.5\osgeo\gdalconst.py build\lib.win32-3.5\osgeo\gdalnumeric.py build\lib.win32-3.5\osgeo\gdal_array.py build\lib.win32-3.5\osgeo\ogr.py build\lib.win32-3.5\osgeo\osr.py build\lib.win32-3.5\osgeo\__init__.py
Skipping optional fixer: ws_comma
Fixing build\lib.win32-3.5\gdal.py build\lib.win32-3.5\ogr.py build\lib.win32-3.5\osr.py build\lib.win32-3.5\gdalconst.py build\lib.win32-3.5\osgeo\gdal.py build\lib.win32-3.5\osgeo\gdalconst.py build\lib.win32-3.5\osgeo\gdalnumeric.py build\lib.win32-3.5\osgeo\gdal_array.py build\lib.win32-3.5\osgeo\ogr.py build\lib.win32-3.5\osgeo\osr.py build\lib.win32-3.5\osgeo\__init__.py
Skipping optional fixer: ws_comma
running build_ext
building 'osgeo._gdal' extension
error: [WinError 2] The system cannot find the file specified
Command "c:\users\isaac\appdata\local\programs\python\python35-32\python.exe -c "import setuptools, tokenize;__file__='C:\\Users\\Isaac\\AppData\\Local\\Temp\\pip-build-07o7k41s\\gdal\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\Users\Isaac\AppData\Local\Temp\pip-640gw1ah-record\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\Isaac\AppData\Local\Temp\pip-build-07o7k41s\gdal
Can someone please help me with this? I'm completely lost and have no idea what to do about this.
I'm wondering if maybe it's because my python installation is in a funny place? It's installed at C:\Users\Isaac\AppData\Local\Programs\Python\Python35-32, which is where it was placed when I installed PyCharm, but that folder and the /Scripts/ folder inside are in my PATH.
After a bit more research I'm wondering if it's because I'm using Python 3.5? I tried rolling back to Python 3.4 and see if it changes anything, but it still fails and tells me
error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat)
I tried to install Microsoft Visual C++ 10.0 and it just told me that there was already a newer version on my computer.
Upvotes: 14
Views: 58798
Reputation: 461
My preferred method of installing python gdal packages have always been with Christoph Gohlke's wheels (.whl) and pip which have recently moved to GIT Hub - https://github.com/cgohlke/geospatial-wheels
Depending on the python version you are using it might be necessary to look through previous releases to find the package that matches your OS and python version. Each python version requires a different package.
Steps:
identify python version by entering the this python command in command line
C:>python --version Python 3.13.1
Go to https://github.com/cgohlke/geospatial-wheels/releases go through the assets list and find the GDAL package that matches your python versions and download it. In this example GDAL-3.10.1-cp313-cp313-win_amd64.whl
install the python package from the download (change the file path to the downloaded .whl file from the example below)
C:>python -m pip install C:/Downloads/GDAL-X.XX.X-cpXXX-cpXXX-win_amd64.whl Processing c:\python-env\gdal-3.10.1-cp313-cp313-win_amd64.whl Installing collected packages: GDAL Successfully installed GDAL-3.10.1
Upvotes: 0
Reputation: 151
This worked for me (for my Windows 7): Download the wheel file for GDAL from the following link (it has up to Python 3.8)
http://pypi.naturalcapitalproject.org/simple/gdal/index.html
I downloaded the wheel file (GDAL-3.0.4-cp37-cp37m-win_amd64.whl) which is suitable for Python 3.7 installed on Windows 64-bit.
Go to the scripts folder of the Python folder and install the wheel file:
pip install GDAL-3.0.4-cp37-cp37m-win_amd64.whl
If the downloaded wheel file is on a specific folder, add the path to the pip command, for example:
pip install c:/users/myaccount/desktop/GDAL-3.0.4-cp37-cp37m-win_amd64.whl
Lastly, do not change the name of the downloaded wheel file.
Upvotes: 0
Reputation: 239
To install GDAL on windows, you need to follow the below-mentioned step: -
NOTE: If the above-mentioned wheel file doesn't work for you, then try using alternate wheel files.
Upvotes: 1
Reputation: 85422
Probably the easiest way to install such kind of libraries is conda
. Get and install Miniconda as user, not root. Now, create a new environment and install gdal
into it:
conda create -n gdal_test python=3.5
activate gdal_test
conda install gdal
You need to stay inside this shell window. i.e. th prompt should like this (gdal_test)
. Start Python:
python
>>> import gdal
Note: On Linux and Mac OS X use source activate gdal_test
.
To find out what versions of gdal
are available, type:
conda search gdal
An output like this:
gdal
....
2.0.0 np110py34_0 defaults
means gdal 2.0.0
is available for Python 3.4 and needs NumPy 1.10.
Upvotes: 17
Reputation: 984
On Windows the easiest way to install GDAL is to use pre-built binaries unless you have special needs that require building GDAL from source. Apart from conda
, as mentioned by @Mike Müller, there are three common sources for GDAL Windows binaries (with Python bindings):
Upvotes: 7