импортировать фортран объект в Python - PullRequest
0 голосов
/ 24 декабря 2018

Я пытаюсь скомпилировать какой-то проект, который я нашел в сети.проект оборачивает некоторый код Fortran в объект python.

Автор этого проекта написал, что мне нужно запустить файл setup.py.

Я сделал это.Он содержит следующий фрагмент кода:

  ext = Extension(name = "GaussianFitter._Fitter",
                sources = ["GaussianFitter/src/lmdif.f",
                           "GaussianFitter/src/splev.f",
                           "GaussianFitter/src/gaussian.f90"],

и, очевидно, все эти файлы "f" существуют.Когда я устанавливаю этот файл setup.py, он успешно выполняет какую-то работу, но первая строка в скрипте, которая использует этот _Fitter:

import _Fitter

, не работает.

Яновичок с python, и вообще не экспериментируем с Fortran, поэтому, пожалуйста, прости мое невежество.

Редактировать: проект доступен здесь:

https://github.com/ardiloot/GaussianFitter

Спасибо!

1 Ответ

0 голосов
/ 26 декабря 2018

Наконец-то все сделано, вот мое учебное пособие для начинающих:

note - поскольку оно предназначено для начинающих - оно устанавливает все в глобальной области видимости.

  1. install mingw32 from: http://www.mingw.org/ Добавьте свой путь к корзине в системный PATH.
  2. добавьте файл setup.cfg, содержащий следующий текст:

    [build]

    compiler =mingw32

найдите его в% pythondir% \ Lib \ distutils

, поскольку файл setup.py содержит ссылки на файлы .c или .f (c ++ / fortran / c), чтобы команда (python setup.py install) могла найти эти файлы - запускайте команду, когдарабочий каталог (то есть cd c: .... \) установлен.

Игнорировать красную строку ошибки в коде при импорте этого модуля.Он находится в каталоге LIB, просто попробуйте запустить ...

РЕДАКТИРОВАТЬ:

Если по-прежнему не удается импортировать уже созданные файлы f - встроить его вможет помочь следующий способ:

python setup.py build_ext --inplace

, который генерирует объект (* .pyd), это помогло мне после того, как он по какой-то причине перестал работать.

...