0

I'm trying to install an external library for PyAstronomy using pip:

pip install PyAstronomy_ext

I do this via Anaconda command prompt. The first time I ran the command the following errors appeared:

building 'PyAstronomy_ext.forTrans.occultnl' extension
error: extension 'PyAstronomy_ext.forTrans.occultnl' has Fortran sources but no Fortran compiler found

----------------------------------------
Failed building wheel for PyAstronomy-ext

and

Command "c:\users\matte\anaconda3\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\matte\\AppData\\Local\\Temp\\pip-install-5pkiwi34\\PyAstronomy-ext\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\matte\AppData\Local\Temp\pip-record-bok3jklv\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\matte\AppData\Local\Temp\pip-install-5pkiwi34\PyAstronomy-ext\

So I checked on the internet and found this topic. I installed MinGW and downloaded all the Fortran related packages, and to be sure I also wrote a test script and compiled it using gFortran, and it worked fine.

When I tried to run the installation again the same errors popped up.

The answer also mentions this:

After the installation, add the path to its binary to the system PATH.

but I can't understand what it means, I tried running the installation command from C:\MinGW\bin but the same error occur.

If you need the whole console dialogue that contains the errors:

Collecting PyAstronomy_ext
  Using cached https://files.pythonhosted.org/packages/32/11/27b1fee690d7d5801580da2c25145a6fcce3ad3d0a1b8c41de09d5615825/PyAstronomy_ext-1.tar.gz
Requirement already satisfied: numpy in c:\users\matte\anaconda3\lib\site-packages (from PyAstronomy_ext) (1.16.0)
Requirement already satisfied: six in c:\users\matte\anaconda3\lib\site-packages (from PyAstronomy_ext) (1.11.0)
Building wheels for collected packages: PyAstronomy-ext
  Building wheel for PyAstronomy-ext (setup.py) ... error
  Complete output from command c:\users\matte\anaconda3\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\matte\\AppData\\Local\\Temp\\pip-install-cg99ug7_\\PyAstronomy-ext\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d C:\Users\matte\AppData\Local\Temp\pip-wheel-0gj25_97 --python-tag cp36:
  running bdist_wheel
  running build
  running config_cc
  unifing config_cc, config, build_clib, build_ext, build commands --compiler options
  running config_fc
  unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
  running build_src
  build_src
  building extension "PyAstronomy_ext.forTrans.occultnl" sources
  f2py options: []
    adding 'build\src.win-amd64-3.6\build\src.win-amd64-3.6\PyAstronomy_ext\forTrans\fortranobject.c' to sources.
    adding 'build\src.win-amd64-3.6\build\src.win-amd64-3.6\PyAstronomy_ext\forTrans' to include_dirs.
  building extension "PyAstronomy_ext.forTrans.occultquad" sources
  f2py options: []
    adding 'build\src.win-amd64-3.6\build\src.win-amd64-3.6\PyAstronomy_ext\forTrans\fortranobject.c' to sources.
    adding 'build\src.win-amd64-3.6\build\src.win-amd64-3.6\PyAstronomy_ext\forTrans' to include_dirs.
    adding 'build\src.win-amd64-3.6\PyAstronomy_ext\forTrans\occultquad-f2pywrappers.f' to sources.
  build_src: building npy-pkg config files
  running build_py
  creating build\lib.win-amd64-3.6
  creating build\lib.win-amd64-3.6\PyAstronomy_ext
  copying PyAstronomy_ext\__init__.py -> build\lib.win-amd64-3.6\PyAstronomy_ext
  creating build\lib.win-amd64-3.6\PyAstronomy_ext\forTrans
  copying PyAstronomy_ext\forTrans\__init__.py -> build\lib.win-amd64-3.6\PyAstronomy_ext\forTrans
  running build_ext
  No module named 'numpy.distutils._msvccompiler' in numpy.distutils; trying from distutils
  customize MSVCCompiler
  customize MSVCCompiler using build_ext
  get_default_fcompiler: matching types: '['gnu', 'intelv', 'absoft', 'compaqv', 'intelev', 'gnu95', 'g95', 'intelvem', 'intelem', 'flang']'
  customize GnuFCompiler
  Could not locate executable g77
  Could not locate executable f77
  customize IntelVisualFCompiler
  Could not locate executable ifort
  Could not locate executable ifl
  customize AbsoftFCompiler
  Could not locate executable f90
  customize CompaqVisualFCompiler
  Could not locate executable DF
  customize IntelItaniumVisualFCompiler
  Could not locate executable efl
  customize Gnu95FCompiler
  Could not locate executable gfortran
  Could not locate executable f95
  customize G95FCompiler
  Could not locate executable g95
  customize IntelEM64VisualFCompiler
  customize IntelEM64TFCompiler
  Could not locate executable efort
  Could not locate executable efc
  customize PGroupFlangCompiler
  Could not locate executable flang
  don't know how to compile Fortran code on platform 'nt'
  warning: build_ext: f77_compiler=None is not available.

  building 'PyAstronomy_ext.forTrans.occultnl' extension
  error: extension 'PyAstronomy_ext.forTrans.occultnl' has Fortran sources but no Fortran compiler found

  ----------------------------------------
  Failed building wheel for PyAstronomy-ext
  Running setup.py clean for PyAstronomy-ext
Failed to build PyAstronomy-ext
Installing collected packages: PyAstronomy-ext
  Running setup.py install for PyAstronomy-ext ... error
    Complete output from command c:\users\matte\anaconda3\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\matte\\AppData\\Local\\Temp\\pip-install-cg99ug7_\\PyAstronomy-ext\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\matte\AppData\Local\Temp\pip-record-5q39xvki\install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running config_cc
    unifing config_cc, config, build_clib, build_ext, build commands --compiler options
    running config_fc
    unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
    running build_src
    build_src
    building extension "PyAstronomy_ext.forTrans.occultnl" sources
    f2py options: []
      adding 'build\src.win-amd64-3.6\build\src.win-amd64-3.6\PyAstronomy_ext\forTrans\fortranobject.c' to sources.
      adding 'build\src.win-amd64-3.6\build\src.win-amd64-3.6\PyAstronomy_ext\forTrans' to include_dirs.
    building extension "PyAstronomy_ext.forTrans.occultquad" sources
    f2py options: []
      adding 'build\src.win-amd64-3.6\build\src.win-amd64-3.6\PyAstronomy_ext\forTrans\fortranobject.c' to sources.
      adding 'build\src.win-amd64-3.6\build\src.win-amd64-3.6\PyAstronomy_ext\forTrans' to include_dirs.
      adding 'build\src.win-amd64-3.6\PyAstronomy_ext\forTrans\occultquad-f2pywrappers.f' to sources.
    build_src: building npy-pkg config files
    running build_py
    creating build\lib.win-amd64-3.6
    creating build\lib.win-amd64-3.6\PyAstronomy_ext
    copying PyAstronomy_ext\__init__.py -> build\lib.win-amd64-3.6\PyAstronomy_ext
    creating build\lib.win-amd64-3.6\PyAstronomy_ext\forTrans
    copying PyAstronomy_ext\forTrans\__init__.py -> build\lib.win-amd64-3.6\PyAstronomy_ext\forTrans
    running build_ext
    No module named 'numpy.distutils._msvccompiler' in numpy.distutils; trying from distutils
    customize MSVCCompiler
    customize MSVCCompiler using build_ext
    get_default_fcompiler: matching types: '['gnu', 'intelv', 'absoft', 'compaqv', 'intelev', 'gnu95', 'g95', 'intelvem', 'intelem', 'flang']'
    customize GnuFCompiler
    Could not locate executable g77
    Could not locate executable f77
    customize IntelVisualFCompiler
    Could not locate executable ifort
    Could not locate executable ifl
    customize AbsoftFCompiler
    Could not locate executable f90
    customize CompaqVisualFCompiler
    Could not locate executable DF
    customize IntelItaniumVisualFCompiler
    Could not locate executable efl
    customize Gnu95FCompiler
    Could not locate executable gfortran
    Could not locate executable f95
    customize G95FCompiler
    Could not locate executable g95
    customize IntelEM64VisualFCompiler
    customize IntelEM64TFCompiler
    Could not locate executable efort
    Could not locate executable efc
    customize PGroupFlangCompiler
    Could not locate executable flang
    don't know how to compile Fortran code on platform 'nt'
    warning: build_ext: f77_compiler=None is not available.

    building 'PyAstronomy_ext.forTrans.occultnl' extension
    error: extension 'PyAstronomy_ext.forTrans.occultnl' has Fortran sources but no Fortran compiler found

    ----------------------------------------
Command "c:\users\matte\anaconda3\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\matte\\AppData\\Local\\Temp\\pip-install-cg99ug7_\\PyAstronomy-ext\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\matte\AppData\Local\Temp\pip-record-5q39xvki\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\matte\AppData\Local\Temp\pip-install-cg99ug7_\PyAstronomy-ext\

EDIT: I was able to solve the problem by doing some digging, I had to write a distutils.cfg file in C:\...\Anaconda3\Lib\distutils with the following:

[build]           
compiler=mingw32 

And then run the following commands from Anaconda prompt:

conda install libpython
conda install -c msys2 m2w64-toolchain

After that pip install PyAstronomy_ext worked perfectly.

I'm leaving this here in case anyone encounters this problem.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.