0

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.

GDAL, shapely and psycopg2 are installed. please let me know how to install fiona on windows

error

M:\projects\python\wheels\fiona>pip install --target="M:\projects\python\flask apps\openRoutService\apps\app5\env\Lib\site-packages" 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>=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>=1.0
  Using cached click_plugins-1.1.1-py2.py3-none-any.whl (7.5 kB)
Collecting attrs>=17
  Using cached attrs-21.4.0-py2.py3-none-any.whl (60 kB)
Collecting click>=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>=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] = '"'"'C:\\Users\\xx\\AppData\\Local\\Temp\\pip-install-v2cmia2n\\gdal_18cd6fbde3384489bd2e11f4cb590c81\\setup.py'"'"'; __file__='"'"'C:\\Users\\xx\\AppData\\Local\\Temp\\pip-install-v2cmia2n\\gdal_18cd6fbde3384489bd2e11f4cb590c81\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' 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 -> build\lib.win-amd64-3.10\osgeo
    copying osgeo\gdalconst.py -> build\lib.win-amd64-3.10\osgeo
    copying osgeo\gdalnumeric.py -> build\lib.win-amd64-3.10\osgeo
    copying osgeo\gdal_array.py -> build\lib.win-amd64-3.10\osgeo
    copying osgeo\gnm.py -> build\lib.win-amd64-3.10\osgeo
    copying osgeo\ogr.py -> build\lib.win-amd64-3.10\osgeo
    copying osgeo\osr.py -> build\lib.win-amd64-3.10\osgeo
    copying osgeo\utils.py -> build\lib.win-amd64-3.10\osgeo
    copying osgeo\__init__.py -> build\lib.win-amd64-3.10\osgeo
    creating build\lib.win-amd64-3.10\osgeo_utils
    copying gdal-utils\osgeo_utils\gdal2tiles.py -> build\lib.win-amd64-3.10\osgeo_utils
    copying gdal-utils\osgeo_utils\gdal2xyz.py -> build\lib.win-amd64-3.10\osgeo_utils
    copying gdal-utils\osgeo_utils\gdalattachpct.py -> build\lib.win-amd64-3.10\osgeo_utils
    copying gdal-utils\osgeo_utils\gdalcompare.py -> build\lib.win-amd64-3.10\osgeo_utils
    copying gdal-utils\osgeo_utils\gdalmove.py -> build\lib.win-amd64-3.10\osgeo_utils
    copying gdal-utils\osgeo_utils\gdal_calc.py -> build\lib.win-amd64-3.10\osgeo_utils
    copying gdal-utils\osgeo_utils\gdal_edit.py -> build\lib.win-amd64-3.10\osgeo_utils
    copying gdal-utils\osgeo_utils\gdal_fillnodata.py -> build\lib.win-amd64-3.10\osgeo_utils
    copying gdal-utils\osgeo_utils\gdal_merge.py -> build\lib.win-amd64-3.10\osgeo_utils
    copying gdal-utils\osgeo_utils\gdal_pansharpen.py -> build\lib.win-amd64-3.10\osgeo_utils
    copying gdal-utils\osgeo_utils\gdal_polygonize.py -> build\lib.win-amd64-3.10\osgeo_utils
    copying gdal-utils\osgeo_utils\gdal_proximity.py -> build\lib.win-amd64-3.10\osgeo_utils
    copying gdal-utils\osgeo_utils\gdal_retile.py -> build\lib.win-amd64-3.10\osgeo_utils
    copying gdal-utils\osgeo_utils\gdal_sieve.py -> build\lib.win-amd64-3.10\osgeo_utils
    copying gdal-utils\osgeo_utils\ogrmerge.py -> build\lib.win-amd64-3.10\osgeo_utils
    copying gdal-utils\osgeo_utils\pct2rgb.py -> build\lib.win-amd64-3.10\osgeo_utils
    copying gdal-utils\osgeo_utils\rgb2pct.py -> build\lib.win-amd64-3.10\osgeo_utils
    copying gdal-utils\osgeo_utils\__init__.py -> 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 -> build\lib.win-amd64-3.10\osgeo_utils\auxiliary
    copying gdal-utils\osgeo_utils\auxiliary\base.py -> build\lib.win-amd64-3.10\osgeo_utils\auxiliary
    copying gdal-utils\osgeo_utils\auxiliary\batch_creator.py -> build\lib.win-amd64-3.10\osgeo_utils\auxiliary
    copying gdal-utils\osgeo_utils\auxiliary\color_palette.py -> build\lib.win-amd64-3.10\osgeo_utils\auxiliary
    copying gdal-utils\osgeo_utils\auxiliary\color_table.py -> build\lib.win-amd64-3.10\osgeo_utils\auxiliary
    copying gdal-utils\osgeo_utils\auxiliary\extent_util.py -> build\lib.win-amd64-3.10\osgeo_utils\auxiliary
    copying gdal-utils\osgeo_utils\auxiliary\gdal_argparse.py -> build\lib.win-amd64-3.10\osgeo_utils\auxiliary
    copying gdal-utils\osgeo_utils\auxiliary\numpy_util.py -> build\lib.win-amd64-3.10\osgeo_utils\auxiliary
    copying gdal-utils\osgeo_utils\auxiliary\osr_util.py -> build\lib.win-amd64-3.10\osgeo_utils\auxiliary
    copying gdal-utils\osgeo_utils\auxiliary\progress.py -> build\lib.win-amd64-3.10\osgeo_utils\auxiliary
    copying gdal-utils\osgeo_utils\auxiliary\raster_creation.py -> build\lib.win-amd64-3.10\osgeo_utils\auxiliary
    copying gdal-utils\osgeo_utils\auxiliary\rectangle.py -> build\lib.win-amd64-3.10\osgeo_utils\auxiliary
    copying gdal-utils\osgeo_utils\auxiliary\util.py -> build\lib.win-amd64-3.10\osgeo_utils\auxiliary
    copying gdal-utils\osgeo_utils\auxiliary\__init__.py -> 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 -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\build_jp2_from_xml.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\classify.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\crs2crs2grid.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\densify.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\dump_jp2.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\epsg_tr.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\esri2wkt.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\fft.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\fix_gpkg.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\gcps2ogr.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\gcps2vec.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\gcps2wld.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\gdal2grd.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\gdalchksum.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\gdalcopyproj.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\gdalfilter.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\gdalident.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\gdalimport.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\gdalinfo.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\gdallocationinfo.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\gdal_auth.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\gdal_cp.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\gdal_create_pdf.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\gdal_ls.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\gdal_lut.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\gdal_mkdir.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\gdal_remove_towgs84.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\gdal_rm.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\gdal_rmdir.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\gdal_vrtmerge.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\gdal_zip.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\get_soundg.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\histrep.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\hsv_merge.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\jpeg_in_tiff_extract.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\load2odbc.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\loslas2ntv2.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\magphase.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\make_fuzzer_friendly_archive.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\mkgraticule.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\ogr2ogr.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\ogr2vrt.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\ogrinfo.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\ogrupdate.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\ogr_build_junction_table.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\ogr_dispatch.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\ogr_layer_algebra.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\rel.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\tigerpoly.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\tile_extent_from_raster.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\tolatlong.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\validate_cloud_optimized_geotiff.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\validate_gpkg.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\validate_jp2.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\val_repl.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\vec_tr.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\vec_tr_spat.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\wcs_virtds_params.py -> build\lib.win-amd64-3.10\osgeo_utils\samples
    copying gdal-utils\osgeo_utils\samples\__init__.py -> 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 "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
    ----------------------------------------
Amrmsmb
  • 1
  • 27
  • 104
  • 226

1 Answers1

1

If you're wanting to do geospatial data analysis with the OSgeo suite I recommend going ahead and installing Geopandas in a clean new Python environment. Fiona is one of the dependencies, so it will be installed. Open up an anaconda prompt and run these commands. Of course you can change the name of your new env from geo_env to something else if you'd prefer.

conda create -n geo_env
conda activate geo_env
conda config --env --add channels conda-forge
conda config --env --set channel_priority strict
conda install python=3 geopandas

You might also find this post helpful if you want to try to get your Microsoft Visual C++ 14.0 working. However, from personal experience and stories from others, I've found the conda-forge Geopandas install to be much easier.

Matthew Borish
  • 3,016
  • 2
  • 13
  • 25