Lỗi pip: không tìm thấy trình biên dịch Fortran, nhưng trình biên dịch đã có mặt


0

Tôi đang cố gắng cài đặt một thư viện bên ngoài cho PyAstronomy bằng pip:

pip install PyAstronomy_ext

Tôi làm điều này thông qua dấu nhắc lệnh Anaconda. Lần đầu tiên tôi chạy lệnh, các lỗi sau xuất hiện:

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

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\

Vì vậy, tôi đã kiểm tra trên internet và tìm thấy chủ đề này . Tôi đã cài đặt MinGW và tải xuống tất cả các gói liên quan đến Fortran, và để chắc chắn rằng tôi cũng đã viết một kịch bản thử nghiệm và biên dịch nó bằng gFortran, và nó hoạt động tốt.

Khi tôi cố chạy lại cài đặt, các lỗi tương tự xuất hiện.

Câu trả lời cũng đề cập đến điều này:

Sau khi cài đặt, thêm đường dẫn đến nhị phân của nó vào hệ thống PATH.

nhưng tôi không thể hiểu ý nghĩa của nó, tôi đã thử chạy lệnh cài đặt từ đó C:\MinGW\binnhưng vẫn xảy ra lỗi tương tự.

Nếu bạn cần toàn bộ hội thoại bàn điều khiển có lỗi:

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: Tôi đã có thể giải quyết vấn đề bằng cách thực hiện một số hoạt động đào, tôi đã phải viết một distutils.cfgtập tin C:\...\Anaconda3\Lib\distutilsvới nội dung sau:

[build]           
compiler=mingw32 

Và sau đó chạy các lệnh sau từ dấu nhắc Anaconda:

conda install libpython
conda install -c msys2 m2w64-toolchain

Sau đó pip install PyAstronomy_extlàm việc hoàn hảo.

Tôi sẽ để nó ở đây trong trường hợp bất cứ ai gặp phải vấn đề này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.