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
enbash
, 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 usabash
. Asegúrese de que este archivo termine con una nueva línea.export PYTHONPATH=/path/to/_gmlnet/directory:$PYTHONPATH