python - Error de configuración Numpy: argumento formal extra
python-2.7 fortran (3)
Tengo algunos archivos de Fortran que me gustaría usar en los archivos de Python. He utilizado el comando C: / Python27 / python.exe setup.py build_ext --inplace --fcompiler = g95. Mi archivo setup.py contiene el siguiente código:
import sys, os
extra_link_args = []
extra_link_args = [''-framework'', ''accelerate'']
from numpy.distutils.core import setup, Extension
opt_flags = [''-g'', ''-fbounds-check'', ''-I/usr/include/'']
files1 = [''particle_solvers/fbsl_sim_fmod.f90'',
''particle_solvers/fbsl_parts_fmod.f90'',
''particle_solvers/fbsl_poisson_fmod.f90'',
''particle_solvers/fbsl_convol_fmod.f90'',
''particle_solvers/fbsl_lbfr_parts_fmod.f90'',
''particle_solvers/fbsl_ltp_parts_fmod.f90'',
''particle_solvers/fbsl_pusher_fmod.f90'',
]
ext1 = Extension(name=''_fbsl_f90'',
sources=files1,
extra_compile_args=opt_flags,
extra_link_args=extra_link_args)
setup(name="_fbsl_f90",
version=''0.1'',
description="Hidden",
author="Hidden",
author_email=''Hidden'',
url='''',
ext_modules=[ext1])
Pero tengo los siguientes errores:
g95.exe:f90: build/src.win32-2.7/_fbsl_f90-f2pywrappers2.f90
In file build/src.win32-2.7/_fbsl_f90-f2pywrappers2.f90:211
&ef2pywrap, smooth_heaviside, r)
1
Error: Extra formal argument for ''f2pywrap_fbsl_sim_f90_smooth_heaviside'' at (1)
In file build/src.win32-2.7/_fbsl_f90-f2pywrappers2.f90:13
&nf2pywrap, t)
1
In file build/src.win32-2.7/_fbsl_f90-f2pywrappers2.f90:217
&nf2pywrap, f_exact_is_known, t)
2
Error: Differing types REAL(8) and LOGICAL(4) in formal arguments at (1) and (2)
In file build/src.win32-2.7/_fbsl_f90-f2pywrappers2.f90:223
&inal_is_knownf2pywrap, f_exact_final_is_known)
1
Error: Extra formal argument for ''f2pywrap_fbsl_sim_f90_f_exact_final_is_known''
at (1)
In file build/src.win32-2.7/_fbsl_f90-f2pywrappers2.f90:228
&2pywrap, f_exact_initial, eta_0, eta_1)
1
Error: Extra formal argument for ''f2pywrap_fbsl_sim_f90_f_exact_initial'' at (1)
In file build/src.win32-2.7/_fbsl_f90-f2pywrappers2.f90:235
&, t, eta_0, eta_1)
1
Error: Extra formal argument for ''f2pywrap_fbsl_sim_f90_f_exact'' at (1)
In file build/src.win32-2.7/_fbsl_f90-f2pywrappers2.f90:243
&rap, f_exact_final, eta_0, eta_1)
1
Error: Extra formal argument for ''f2pywrap_fbsl_sim_f90_f_exact_final'' at (1)
In file build/src.win32-2.7/_fbsl_f90-f2pywrappers2.f90:250
&_field_is_givenf2pywrap, velocity_field_is_given)
1
Error: Extra formal argument for ''f2pywrap_fbsl_sim_f90_velocity_field_is_given''
at (1)
In file build/src.win32-2.7/_fbsl_f90-f2pywrappers2.f90:255
&ine_u0, x0, x1)
1
Error: Extra formal argument for ''f2pywrap_fbsl_sim_f90_affine_u0'' at (1)
In file build/src.win32-2.7/_fbsl_f90-f2pywrappers2.f90:262
&ine_u1, x0, x1)
1
Error: Extra formal argument for ''f2pywrap_fbsl_sim_f90_affine_u1'' at (1)
In file build/src.win32-2.7/_fbsl_f90-f2pywrappers2.f90:269
&p, quadratic_u0, t, x0, x1)
1
Error: Extra formal argument for ''f2pywrap_fbsl_sim_f90_quadratic_u0'' at (1)
In file build/src.win32-2.7/_fbsl_f90-f2pywrappers2.f90:277
&p, quadratic_u1, t, x0, x1)
1
Error: Extra formal argument for ''f2pywrap_fbsl_sim_f90_quadratic_u1'' at (1)
In file build/src.win32-2.7/_fbsl_f90-f2pywrappers2.f90:285
&w_0f2pywrap, bwd_affine_flow_0, t, x0, x1)
1
Error: Extra formal argument for ''f2pywrap_fbsl_sim_f90_bwd_affine_flow_0'' at (1
)
In file build/src.win32-2.7/_fbsl_f90-f2pywrappers2.f90:293
&w_1f2pywrap, bwd_affine_flow_1, t, x0, x1)
1
Error: Extra formal argument for ''f2pywrap_fbsl_sim_f90_bwd_affine_flow_1'' at (1
)
In file build/src.win32-2.7/_fbsl_f90-f2pywrappers2.f90:301
&ic_flow_0f2pywrap, bwd_quadratic_flow_0, t, x0, x1)
1
Error: Extra formal argument for ''f2pywrap_fbsl_sim_f90_bwd_quadratic_flow_0'' at
(1)
In file build/src.win32-2.7/_fbsl_f90-f2pywrappers2.f90:309
&ic_flow_1f2pywrap, bwd_quadratic_flow_1, t, x0, x1)
1
Error: Extra formal argument for ''f2pywrap_fbsl_sim_f90_bwd_quadratic_flow_1'' at
(1)
In file build/src.win32-2.7/_fbsl_f90-f2pywrappers2.f90:317
&0, x1)
1
Error: Extra formal argument for ''f2pywrap_fbsl_sim_f90_bggk_a'' at (1)
error: Command "C:/Users/QUENTIN/bin/g95.exe -fno-second-underscore -O -Ibuild/s
rc.win32-2.7 -IC:/Python27/lib/site-packages/numpy/core/include -IC:/Python27/in
clude -IC:/Python27/PC -c -c build/src.win32-2.7/_fbsl_f90-f2pywrappers2.f90 -o
build/temp.win32-2.7/Release/build/src.win32-2.7/_fbsl_f90-f2pywrappers2.o -fmod
=build/temp.win32-2.7/Release/ -Ibuild/temp.win32-2.7/Release/" failed with exit
status 1
No entiendo por qué tengo esos errores argumentales extra. ¿Cómo puedo arreglarlos? Estoy trabajando en Windows 7 con compilador Python 2.7 y g95.
EDIT: Bueno, para simplificar, aquí hay una muestra de mi código Fortran:
module test_f90
implicit none
real *8 :: delta
contains
real*8 function test_f(r)
real*8, intent(in) :: r
test_f = 0.5*( 1 + erf(r/delta) )
end function
end module test_f90
Cuando uso el comando C: / Python27 / python.exe setup.py build_ext --inplace --fcompiler = g95 con este archivo setup.py:
import sys
extra_link_args = []
from numpy.distutils.core import setup, Extension
opt_flags = [''-g'', ''-fbounds-check'', ''-I/usr/include/'']
files1 = [''test_fmod.f90'',
]
ext1 = Extension(name=''_test_f90'',
sources=files1,
extra_compile_args=opt_flags,
extra_link_args=extra_link_args)
setup(name="_test_f90",
version=''0.1'',
description="test module",
author="Hidden",
author_email=''Hidden'',
url='''',
ext_modules=[ext1])
Tengo este archivo Fortran generado por f2py:
! -*- f90 -*-
! This file is autogenerated with f2py (version:2)
! It contains Fortran 90 wrappers to fortran functions.
subroutine f2pywrap_test_f90_test_f (test_ff2pywrap, r)
use test_f90, only : test_f
real(kind=8) r
real(kind=8) test_ff2pywrap
test_ff2pywrap = test_f(r)
end subroutine f2pywrap_test_f90_test_f
subroutine f2pyinittest_f90(f2pysetupfunc)
use test_f90, only : delta
interface
subroutine f2pywrap_test_f90_test_f (test_ff2pywrap, test_f, r)
real(kind=8) test_f
real(kind=8) r
real(kind=8) test_ff2pywrap
end subroutine f2pywrap_test_f90_test_f
end interface
external f2pysetupfunc
call f2pysetupfunc(delta,f2pywrap_test_f90_test_f)
end subroutine f2pyinittest_f90
pero todavía tengo este error:
g95.exe:f90: build/src.win32-2.7/_test_f90-f2pywrappers2.f90
In file build/src.win32-2.7/_test_f90-f2pywrappers2.f90:15
subroutine f2pywrap_test_f90_test_f (test_ff2pywrap, test_f, r)
1
Error: Extra formal argument for ''f2pywrap_test_f90_test_f'' at (1)
error: Command "C:/Users/QUENTIN/bin/g95.exe -fno-second-underscore -O -Ibuild/s
rc.win32-2.7 -IC:/Python27/lib/site-packages/numpy/core/include -IC:/Python27/in
clude -IC:/Python27/PC -c -c build/src.win32-2.7/_test_f90-f2pywrappers2.f90 -o
build/temp.win32-2.7/Release/build/src.win32-2.7/_test_f90-f2pywrappers2.o -fmod
=build/temp.win32-2.7/Release/ -Ibuild/temp.win32-2.7/Release/" failed with exit
status 1
Lo sentimos, parece que el soporte del envoltorio f2py está roto, ya que declara una función dos veces con firmas en conflicto: primero 2 luego 3 argumentos formales. No está claro si esta versión funcionará para usted como lo desea, aunque le puede resultar útil trabajar con los ejemplos de las primeras entradas F2py ToC .
muestra que numpy no está instalado correctamente. Puedes descargar el numpy desde el siguiente enlace.
https://pypi.org/project/numpy/
o puedes usar el archivo wheel para instalar numpy.
Vaya a la siguiente línea para descargar la rueda adecuada.
https://www.lfd.uci.edu/~gohlke/pythonlibs/
en el enlace de arriba, busque el número y lo instala
https://sourceforge.net/projects/numpy/?source=typ_redirect Por encima de la mención, el enlace tiene el archivo fuente de la descarga numpy.
Luego dispara un comando en la terminal.
cd /home/Downloads/numpy-1.11.2
ls
sudo python setup.py install