Как получить тест setup.py для использования определенного компилятора Фортрана? - PullRequest
5 голосов
/ 29 июня 2011

Я пытаюсь протестировать пакет , который включает в себя некоторые файлы f90.Если я собираю или устанавливаю и указываю компилятор фортрана, он работает нормально.Однако, когда я пытаюсь протестировать, я получаю следующую ошибку:

C:\Users\jsalvatier\workspace\scikits.bvp_solver>python setup.py config_fc --fcompiler=gfortran test
running config_fc
unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
running test
running egg_info
running build_src
build_src
building extension "scikits.bvp_solver.bvp_solverf" sources
f2py options: []
  adding 'build\src.win32-2.6\fortranobject.c' to sources.
  adding 'build\src.win32-2.6' to include_dirs.
  adding 'build\src.win32-2.6\scikits\bvp_solver\lib\bvp_solverf-f2pywrappers2.f90' to sources.
building data_files sources
build_src: building npy-pkg config files
writing scikits.bvp_solver.egg-info\PKG-INFO
writing namespace_packages to scikits.bvp_solver.egg-info\namespace_packages.txt
writing top-level names to scikits.bvp_solver.egg-info\top_level.txt
writing dependency_links to scikits.bvp_solver.egg-info\dependency_links.txt
reading manifest file 'scikits.bvp_solver.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'scikits.bvp_solver.egg-info\SOURCES.txt'
running build_ext
customize Mingw32CCompiler
customize Mingw32CCompiler using build_ext
customize GnuFCompiler
Found executable C:\mingw\bin\g77.exe
gnu: no Fortran 90 compiler found
gnu: no Fortran 90 compiler found
Found executable C:\mingw\bin\g77.exe
customize GnuFCompiler
gnu: no Fortran 90 compiler found
gnu: no Fortran 90 compiler found
customize GnuFCompiler using build_ext
building 'scikits.bvp_solver.bvp_solverf' extension
compiling C sources
C compiler: gcc -mno-cygwin -O2 -Wall -Wstrict-prototypes

compile options: '-Ibuild\src.win32-2.6 -IC:\Python26\lib\site-packages\numpy\core\include -IC:\Python26\include -IC:\Python26\PC -c'
gcc -mno-cygwin -O2 -Wall -Wstrict-prototypes -Ibuild\src.win32-2.6 -IC:\Python26\lib\site-packages\numpy\core\include -IC:\Python26\include -IC:\Python26\PC -c build\src.win32-2.6\scikits\bvp_solver\lib\bvp_solverfmodule.c -o build\temp.win32-2.6\Release\build\src.win32-2.6\scikits\bvp_solver\lib\bvp_solverfmodule.o
Found executable C:\mingw\bin\gcc.exe
gcc -mno-cygwin -O2 -Wall -Wstrict-prototypes -Ibuild\src.win32-2.6 -IC:\Python26\lib\site-packages\numpy\core\include -IC:\Python26\include -IC:\Python26\PC -c build\src.win32-2.6\fortranobject.c -o build\temp.win32-2.6\Release\build\src.win32-2.6\fortranobject.o
compiling Fortran 90 module sources
XXX: module_build_dir='build\\temp.win32-2.6\\Release\\scikits\\bvp_solver' option ignored
XXX: Fix module_dir_switch for  GnuFCompiler
XXX: module_dirs=[] option ignored
XXX: Fix module_include_switch for  GnuFCompiler
Fortran f77 compiler: C:\mingw\bin\g77.exe -g -Wall -fno-second-underscore -mno-cygwin -O3 -funroll-loops
compile options: '-Ibuild\src.win32-2.6 -IC:\Python26\lib\site-packages\numpy\core\include -IC:\Python26\include -IC:\Python26\PC -c'
error: f90 not supported by GnuFCompiler needed for scikits\bvp_solver\lib\BVP_M.f90

Есть ли способ обойти это?Я на Windows 7, Python 2.6, Numpy 1.4.1.

Ответы [ 2 ]

2 голосов
/ 01 июля 2011

Я думаю, что проблема в том, что команда 'test' требует сборки на месте.

python setup.py config --fcompiler=gfortran build_ext --inplace

генерировал ту же ошибку, что и раньше, но

python setup.py config --fcompiler=gfortran build_ext

не было.

Я смог обойти проблему,

  1. Запуск установки в интерактивном режиме режим (python setup.py)

  2. Настройка компилятора фортрана на gfortran

  3. выбор сборки на месте (3)

2 голосов
/ 30 июня 2011

Документация для этого пакета рекомендует сборку следующим образом:

python setup.py config --compiler=mingw32 build --compiler=mingw32 install

Это должно работать с gfortran-версией mingw32. Я не имею доступ к машине с Windows, но когда я собрал другие модули Python (например, numpy) с помощью gfortran, команда выглядела так:

python setup.py build --fcompiler=gnu95

ETA: Я неправильно понял начало вашего вопроса, и теперь я вижу, что вы можете строить, но не тестировать. Вы пробовали это только с "--compiler = mingw32"?

...