title: how to install fiona on windows
body: <p>i am trying to install fiona package. i tried to install it via pip command and as a wheel, but either of them fails and i get the
  below posted error.</p>
  <p>GDAL, shapely and psycopg2 are installed.
  please let me know how to install fiona on windows</p>
  <p><strong>error</strong></p>
  <pre><code>M:\projects\python\wheels\fiona&gt;pip install --target=&quot;M:\projects\python\flask apps\openRoutService\apps\app5\env\Lib\site-packages&quot; Fiona-1.8.20-cp310-cp310-win_amd64.whl
  Processing m:\projects\python\wheels\fiona\fiona-1.8.20-cp310-cp310-win_amd64.whl
  Collecting six&gt;=1.7
    Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
  Collecting gdal~=3.4.1
    Using cached GDAL-3.4.1.tar.gz (755 kB)
  Collecting click-plugins&gt;=1.0
    Using cached click_plugins-1.1.1-py2.py3-none-any.whl (7.5 kB)
  Collecting attrs&gt;=17
    Using cached attrs-21.4.0-py2.py3-none-any.whl (60 kB)
  Collecting click&gt;=4.0
    Using cached click-8.0.3-py3-none-any.whl (97 kB)
  Collecting certifi
    Using cached certifi-2021.10.8-py2.py3-none-any.whl (149 kB)
  Collecting munch
    Using cached munch-2.5.0-py2.py3-none-any.whl (10 kB)
  Collecting setuptools
    Using cached setuptools-60.9.2-py3-none-any.whl (1.1 MB)
  Collecting cligj&gt;=0.5
    Using cached cligj-0.7.2-py3-none-any.whl (7.1 kB)
  Collecting colorama
    Using cached colorama-0.4.4-py2.py3-none-any.whl (16 kB)
  Using legacy 'setup.py install' for gdal, since package 'wheel' is not installed.
  Installing collected packages: colorama, six, click, setuptools, munch, gdal, cligj, click-plugins, certifi, attrs, Fiona
      Running setup.py install for gdal ... error
      ERROR: Command errored out with exit status 1:
       command: 'C:\Python310\python.exe' -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '&quot;'&quot;'C:\\Users\\xx\\AppData\\Local\\Temp\\pip-install-v2cmia2n\\gdal_18cd6fbde3384489bd2e11f4cb590c81\\setup.py'&quot;'&quot;'; __file__='&quot;'&quot;'C:\\Users\\xx\\AppData\\Local\\Temp\\pip-install-v2cmia2n\\gdal_18cd6fbde3384489bd2e11f4cb590c81\\setup.py'&quot;'&quot;';f = getattr(tokenize, '&quot;'&quot;'open'&quot;'&quot;', open)(__file__) if os.path.exists(__file__) else io.StringIO('&quot;'&quot;'from setuptools import setup; setup()'&quot;'&quot;');code = f.read().replace('&quot;'&quot;'\r\n'&quot;'&quot;', '&quot;'&quot;'\n'&quot;'&quot;');f.close();exec(compile(code, __file__, '&quot;'&quot;'exec'&quot;'&quot;'))' install --record 'C:\Users\xx\AppData\Local\Temp\pip-record-i_y174eu\install-record.txt' --single-version-externally-managed --home 'C:\Users\xx\AppData\Local\Temp\pip-target-psp5q3qc' --compile --install-headers 'C:\Users\xx\AppData\Local\Temp\pip-target-psp5q3qc\include\python\gdal'
           cwd: C:\Users\xx\AppData\Local\Temp\pip-install-v2cmia2n\gdal_18cd6fbde3384489bd2e11f4cb590c81\
      Complete output (118 lines):
      running install
      running build
      running build_py
      creating build
      creating build\lib.win-amd64-3.10
      creating build\lib.win-amd64-3.10\osgeo
      copying osgeo\gdal.py -&gt; build\lib.win-amd64-3.10\osgeo
      copying osgeo\gdalconst.py -&gt; build\lib.win-amd64-3.10\osgeo
      copying osgeo\gdalnumeric.py -&gt; build\lib.win-amd64-3.10\osgeo
      copying osgeo\gdal_array.py -&gt; build\lib.win-amd64-3.10\osgeo
      copying osgeo\gnm.py -&gt; build\lib.win-amd64-3.10\osgeo
      copying osgeo\ogr.py -&gt; build\lib.win-amd64-3.10\osgeo
      copying osgeo\osr.py -&gt; build\lib.win-amd64-3.10\osgeo
      copying osgeo\utils.py -&gt; build\lib.win-amd64-3.10\osgeo
      copying osgeo\__init__.py -&gt; build\lib.win-amd64-3.10\osgeo
      creating build\lib.win-amd64-3.10\osgeo_utils
      copying gdal-utils\osgeo_utils\gdal2tiles.py -&gt; build\lib.win-amd64-3.10\osgeo_utils
      copying gdal-utils\osgeo_utils\gdal2xyz.py -&gt; build\lib.win-amd64-3.10\osgeo_utils
      copying gdal-utils\osgeo_utils\gdalattachpct.py -&gt; build\lib.win-amd64-3.10\osgeo_utils
      copying gdal-utils\osgeo_utils\gdalcompare.py -&gt; build\lib.win-amd64-3.10\osgeo_utils
      copying gdal-utils\osgeo_utils\gdalmove.py -&gt; build\lib.win-amd64-3.10\osgeo_utils
      copying gdal-utils\osgeo_utils\gdal_calc.py -&gt; build\lib.win-amd64-3.10\osgeo_utils
      copying gdal-utils\osgeo_utils\gdal_edit.py -&gt; build\lib.win-amd64-3.10\osgeo_utils
      copying gdal-utils\osgeo_utils\gdal_fillnodata.py -&gt; build\lib.win-amd64-3.10\osgeo_utils
      copying gdal-utils\osgeo_utils\gdal_merge.py -&gt; build\lib.win-amd64-3.10\osgeo_utils
      copying gdal-utils\osgeo_utils\gdal_pansharpen.py -&gt; build\lib.win-amd64-3.10\osgeo_utils
      copying gdal-utils\osgeo_utils\gdal_polygonize.py -&gt; build\lib.win-amd64-3.10\osgeo_utils
      copying gdal-utils\osgeo_utils\gdal_proximity.py -&gt; build\lib.win-amd64-3.10\osgeo_utils
      copying gdal-utils\osgeo_utils\gdal_retile.py -&gt; build\lib.win-amd64-3.10\osgeo_utils
      copying gdal-utils\osgeo_utils\gdal_sieve.py -&gt; build\lib.win-amd64-3.10\osgeo_utils
      copying gdal-utils\osgeo_utils\ogrmerge.py -&gt; build\lib.win-amd64-3.10\osgeo_utils
      copying gdal-utils\osgeo_utils\pct2rgb.py -&gt; build\lib.win-amd64-3.10\osgeo_utils
      copying gdal-utils\osgeo_utils\rgb2pct.py -&gt; build\lib.win-amd64-3.10\osgeo_utils
      copying gdal-utils\osgeo_utils\__init__.py -&gt; build\lib.win-amd64-3.10\osgeo_utils
      creating build\lib.win-amd64-3.10\osgeo_utils\auxiliary
      copying gdal-utils\osgeo_utils\auxiliary\array_util.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\auxiliary
      copying gdal-utils\osgeo_utils\auxiliary\base.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\auxiliary
      copying gdal-utils\osgeo_utils\auxiliary\batch_creator.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\auxiliary
      copying gdal-utils\osgeo_utils\auxiliary\color_palette.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\auxiliary
      copying gdal-utils\osgeo_utils\auxiliary\color_table.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\auxiliary
      copying gdal-utils\osgeo_utils\auxiliary\extent_util.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\auxiliary
      copying gdal-utils\osgeo_utils\auxiliary\gdal_argparse.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\auxiliary
      copying gdal-utils\osgeo_utils\auxiliary\numpy_util.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\auxiliary
      copying gdal-utils\osgeo_utils\auxiliary\osr_util.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\auxiliary
      copying gdal-utils\osgeo_utils\auxiliary\progress.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\auxiliary
      copying gdal-utils\osgeo_utils\auxiliary\raster_creation.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\auxiliary
      copying gdal-utils\osgeo_utils\auxiliary\rectangle.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\auxiliary
      copying gdal-utils\osgeo_utils\auxiliary\util.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\auxiliary
      copying gdal-utils\osgeo_utils\auxiliary\__init__.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\auxiliary
      creating build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\assemblepoly.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\build_jp2_from_xml.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\classify.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\crs2crs2grid.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\densify.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\dump_jp2.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\epsg_tr.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\esri2wkt.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\fft.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\fix_gpkg.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\gcps2ogr.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\gcps2vec.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\gcps2wld.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\gdal2grd.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\gdalchksum.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\gdalcopyproj.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\gdalfilter.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\gdalident.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\gdalimport.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\gdalinfo.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\gdallocationinfo.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\gdal_auth.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\gdal_cp.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\gdal_create_pdf.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\gdal_ls.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\gdal_lut.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\gdal_mkdir.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\gdal_remove_towgs84.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\gdal_rm.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\gdal_rmdir.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\gdal_vrtmerge.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\gdal_zip.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\get_soundg.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\histrep.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\hsv_merge.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\jpeg_in_tiff_extract.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\load2odbc.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\loslas2ntv2.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\magphase.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\make_fuzzer_friendly_archive.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\mkgraticule.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\ogr2ogr.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\ogr2vrt.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\ogrinfo.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\ogrupdate.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\ogr_build_junction_table.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\ogr_dispatch.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\ogr_layer_algebra.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\rel.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\tigerpoly.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\tile_extent_from_raster.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\tolatlong.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\validate_cloud_optimized_geotiff.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\validate_gpkg.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\validate_jp2.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\val_repl.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\vec_tr.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\vec_tr_spat.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\wcs_virtds_params.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      copying gdal-utils\osgeo_utils\samples\__init__.py -&gt; build\lib.win-amd64-3.10\osgeo_utils\samples
      running build_ext
      building 'osgeo._gdal' extension
      building 'osgeo._ogr' extension
      building 'osgeo._osr' extension
      building 'osgeo._gnm' extension
      building 'osgeo._gdalconst' extension
      building 'osgeo._gdal_array' extension
      error: Microsoft Visual C++ 14.0 or greater is required. Get it with &quot;Microsoft C++ Build Tools&quot;: https://visualstudio.microsoft.com/visual-cpp-build-tools/
      ----------------------------------------
  </code></pre>