python fortran glmnet

Python glmnet "Ningún módulo llamado_glmnet"



fortran (2)

Por lo que puedo decir de la fuente, está buscando el módulo _gmlnet , que se define en gmlnet.pyf . gmlnet.pyf no es un módulo de Python, es un conjunto de instrucciones adicionales para un programa llamado f2py , y python ignorará el archivo .pyf . Necesitas compilar el archivo .pyf junto con un archivo Fortran usando f2py . Use un comando como este:

f2py -c --fcompiler=gnu95 gmlnet.pyf gmlnet.f

Intenta instalar f2py y luego vuelve a instalar el paquete gmlnet .

ACTUALIZAR Acercarse. Ahora f2py en el archivo .pyf que debería generar el módulo _glmnet .

Construyo el paquete paquete python-glmnet con el siguiente comando.

python setup.py config_fc --fcompiler=gnu95 --f77flags=''-fdefault-real-8'' --f90flags=''-fdefault-real-8'' build

Pero cuando importo el módulo obtengo este error:

Archivo "/Users/rose/221/tagger/tagger/glmnet/glmnet.py", línea 2, en importación _glmnet ImportError: Ningún módulo llamado _glmnet

¿Cómo puedo importar ese módulo?

El directorio glmnet también contiene un archivo glmnet.pyf que comienza con lo siguiente:

! -*- f90 -*- ! Note: the context of this file is case sensitive. python module _glmnet ! in interface ! in :_glmnet subroutine elnet(ka,parm,no,ni,x,y,w,jd,vp,ne,nx,nlam,flmin,ulam,thr,isd,lmu,a0,ca,ia,nin,rsq,alm,nlp,jerr) ! in :glmnet:glmnet.f integer optional :: ka=1 ! Use covariance updates over naive by default real*8 :: parm integer intent(hide),check(shape(x,0)==no),depend(x) :: no=shape(x,0) integer intent(hide),check(shape(x,1)==ni),depend(x) :: ni=shape(x,1) real*8 dimension(no,ni) :: x real*8 dimension(no),depend(no) :: y real*8 dimension(no),depend(no) :: w integer dimension(*) :: jd real*8 dimension(ni),depend(ni) :: vp integer optional,depend(x) :: ne=min(shape(x,1), nx) integer :: nx integer optional,check((flmin < 1.0 || len(ulam)==nlam)),depend(flmin,ulam) :: nlam=len(ulam) real*8 :: flmin real*8 dimension(nlam) :: ulam real*8 :: thr integer optional :: isd=1 ! Standardize predictors by default

ACTUALIZAR

¿Dónde puedo encontrar este módulo _glmnet ? ¿Está contenido en el archivo glmnet.pyf, como se muestra a continuación? Traté de agregar esta carpeta glment a mi PYTHONPATH , pero eso no cambió nada.

~/221/tagger/tagger/glmnet master ls __init__.py example_lasso_elastic_net.py glmnet.pyc __init__.pyc glmnet.f glmnet.pyf elastic_net.py glmnet.py ~/221/tagger/tagger/glmnet master head -10 glmnet.pyf ! -*- f90 -*- ! Note: the context of this file is case sensitive. python module _glmnet ! in interface ! in :_glmnet subroutine elnet(ka,parm,no,ni,x,y,w,jd,vp,ne,nx,nlam,flmin,ulam,thr,isd,lmu,a0,ca,ia,nin,rsq,alm,nlp,jerr) ! in :glmnet:glmnet.f integer optional :: ka=1 ! Use covariance updates over naive by default real*8 :: parm integer intent(hide),check(shape(x,0)==no),depend(x) :: no=shape(x,0) integer intent(hide),check(shape(x,1)==ni),depend(x) :: ni=shape(x,1) ~/221/tagger/tagger/glmnet master echo $PYTHONPATH /Users/rose/221/tagger/tagger/glmnet: ~/221/tagger/tagger/glmnet master cd .. ~/221/tagger/tagger master python main.py Traceback (most recent call last): File "main.py", line 14, in <module> from glmnet import glmnet File "/Users/rose/221/tagger/tagger/glmnet/glmnet.py", line 2, in <module> import _glmnet ImportError: No module named _glmnet


Sin saber demasiado sobre qué más está sucediendo, parece que Python no sabe dónde se encuentra el paquete _gmlnet . Si aún no lo hizo, verifique el contenido de su variable de entorno PYTHONPATH con echo $PYTHONPATH . Si el directorio _gmlnet no está allí, debe agregarlo.

  • Para agregar algo a PYTHONPATH en bash , ejecute el siguiente comando:

    export PYTHONPATH=/path/to/_gmlnet/directory:$PYTHONPATH

  • Puede verificar que python haya analizado esto correctamente ingresando al terminal interactivo y escribiendo

    import sys

    print sys.path

  • Por último, es probable que no desee tener que escribir esto en su shell cada vez que inicie su terminal. Para Mac OS, agregue lo siguiente al final de su archivo ~/.bash_profile si usa bash . Asegúrese de que este archivo termine con una nueva línea.

    export PYTHONPATH=/path/to/_gmlnet/directory:$PYTHONPATH