По этим материалам учись
https://numpy.org/doc/stable/f2py/https://numpy.org/doc/stable/f2py/f2py.getting-started.htmlПо русским перепечаткам учишься - в итоге не знаешь ничего.
Вот это пишешь в файл fib1.f
C FILE: FIB1.F
SUBROUTINE FIB(A,N)
C
C CALCULATE FIRST N FIBONACCI NUMBERS
C
INTEGER N
REAL*8 A(N)
DO I=1,N
IF (I.EQ.1) THEN
A(I) = 0.0D0
ELSEIF (I.EQ.2) THEN
A(I) = 1.0D0
ELSE
A(I) = A(I-1) + A(I-2)
ENDIF
ENDDO
END
C END FILE FIB1.F
Дальше в консоли выполняешь
python3 -m numpy.f2py -c fib1.f -m fib1
Так как у меня Linux, запуск третьего питона идёт в виде python3. В Windows это будет python.exe .
В директории появляется файл
fib1.cpython-36m-x86_64-linux-gnu.so
Так как у меня Linux, файл динамической библиотеки имеет расширение .so . В Windows это будет файл с расширением .dll .
Дальше я его копирую в fib1.so
cp fib1.cpython-36m-x86_64-linux-gnu.so fib1.so
Так как у меня Linux, я копирую его в файл с расширением .so . В Windows это будет файл с расширением .dll .
В директории появляется файл
Так как у меня Linux, файл динамической библиотеки имеет расширение .so . В Windows это будет файл с расширением .dll .
Отличия pyd-файлов от dll-файлов
https://docs.python.org/3/faq/windows.html#is-a-pyd-file-the-same-as-a-dllЕсли создаётся pyd-файл у тебя, то и копируй его в pyd-файл.
И дальше я запускаю питон (третий питон) в консоли в этой директории
[guest@localhost f2py_test]$ python3
Python 3.6.1 (default, Jun 27 2017, 14:35:15)
[GCC 7.1.1 20170622 (Red Hat 7.1.1-3)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Дальше я в консоли питона, запущенного в той же директории, где лежит динамическая библиотека, выполняю
>>> import fib1
>>>
>>> print(fib1.fib.__doc__)
fib(a,[n])
Wrapper for ``fib``.
Parameters
----------
a : input rank-1 array('d') with bounds (n)
Other Parameters
----------------
n : input int, optional
Default: len(a)
>>>
>>> import numpy
>>>
>>> a = numpy.zeros(8, 'd')
>>>
>>> fib1.fib(a)
>>>
>>> a
array([ 0., 1., 1., 2., 3., 5., 8., 13.])
>>>
Так что, думаю, тебе надо просто свой dll-файл, который получился, скопировать в файл fib1.dll . Скорее всего, это поможет обнаружить его. Возможно, он собрался правильно и всё работает. Если не работает, используй исходные материалы для обучения, а не перепечатки.