Moondra
Moondra

Reputation: 4511

Theano: AttributeError: module 'theano' has no attribute 'gof'

The solution presented in this thread did not work for me:

Import theano gives the AttributeError: module 'theano' has no attribute 'gof'

I've tried conda install theano (for jupyter notebook) and despite installing perfectly I'm still getting the above error.

I'm using Python 3.6, Windows 7, Anaconda/Jupyter notebook, with a Nvidia 1070 GPU. Theano is version .9.0

The traceback is as follows:

ImportError                               Traceback (most recent call last)
C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\theano\gof\lazylinker_c.py in <module>()
     74         if version != getattr(lazylinker_ext, '_version', None):
---> 75             raise ImportError()
     76 except ImportError:

ImportError: 

During handling of the above exception, another exception occurred:

ImportError                               Traceback (most recent call last)
C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\theano\gof\lazylinker_c.py in <module>()
     91             if version != getattr(lazylinker_ext, '_version', None):
---> 92                 raise ImportError()
     93         except ImportError:

ImportError: 

During handling of the above exception, another exception occurred:

Exception                                 Traceback (most recent call last)
C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\theano\gof\vm.py in <module>()
    661         raise theano.gof.cmodule.MissingGXX('lazylinker will not be imported if theano.config.cxx is not set.')
--> 662     from . import lazylinker_c
    663 

C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\theano\gof\lazylinker_c.py in <module>()
    126             cmodule.GCC_compiler.compile_str(dirname, code, location=loc,
--> 127                                              preargs=args)
    128             # Save version into the __init__.py file.

C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\theano\gof\cmodule.py in compile_str(module_name, src_code, location, include_dirs, lib_dirs, libs, preargs, py_module, hide_symbols)
   2315             raise Exception('Compilation failed (return status=%s): %s' %
-> 2316                             (status, compile_stderr.replace('\n', '. ')))
   2317         elif config.cmodule.compilation_warning and compile_stderr:

Exception: Compilation failed (return status=1): In file included from C:\Users\Moondra\AppData\Local\Programs\Python\Python36\include/Python.h:50:0,.                  from C:\Users\Moondra\AppData\Local\Theano\compiledir_Windows-7-6.1.7601-SP1-Intel64_Family_6_Model_94_Stepping_3_GenuineIntel-3.6.0-64\lazylinker_ext\mod.cpp:1:. C:\Users\Moondra\AppData\Local\Programs\Python\Python36\include/pyport.h:686:2: error: #error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?).".  #error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?).".   ^. In file included from C:\Users\Moondra\AppData\Local\Programs\Python\Python36\include/Python.h:133:0,.                  from C:\Users\Moondra\AppData\Local\Theano\compiledir_Windows-7-6.1.7601-SP1-Intel64_Family_6_Model_94_Stepping_3_GenuineIntel-3.6.0-64\lazylinker_ext\mod.cpp:1:. C:\Users\Moondra\AppData\Local\Programs\Python\Python36\include/fileutils.h:23:5: error: '__int64' does not name a type.      __int64 st_ino;.      ^. C:\Users\Moondra\AppData\Local\Programs\Python\Python36\include/fileutils.h:29:5: error: '__int64' does not name a type.      __int64 st_size;.      ^. In file included from /usr/include/sys/stat.h:22:0,.                  from C:\Users\Moondra\AppData\Local\Programs\Python\Python36\include/pyport.h:227,.                  from C:\Users\Moondra\AppData\Local\Programs\Python\Python36\include/Python.h:50,.                  from C:\Users\Moondra\AppData\Local\Theano\compiledir_Windows-7-6.1.7601-SP1-Intel64_Family_6_Model_94_Stepping_3_GenuineIntel-3.6.0-64\lazylinker_ext\mod.cpp:1:. C:\Users\Moondra\AppData\Local\Programs\Python\Python36\include/fileutils.h:30:12: error: expected ';' at end of member declaration.      time_t st_atime;.             ^. C:\Users\Moondra\AppData\Local\Programs\Python\Python36\include/fileutils.h:30:12: error: expected unqualified-id before '.' token.      time_t st_atime;.             ^. C:\Users\Moondra\AppData\Local\Programs\Python\Python36\include/fileutils.h:32:12: error: expected ';' at end of member declaration.      time_t st_mtime;.             ^. C:\Users\Moondra\AppData\Local\Programs\Python\Python36\include/fileutils.h:32:12: error: expected unqualified-id before '.' token.      time_t st_mtime;.             ^. C:\Users\Moondra\AppData\Local\Programs\Python\Python36\include/fileutils.h:34:12: error: expected ';' at end of member declaration.      time_t st_ctime;.             ^. C:\Users\Moondra\AppData\Local\Programs\Python\Python36\include/fileutils.h:34:12: error: expected unqualified-id before '.' token.      time_t st_ctime;.             ^. In file included from C:\Users\Moondra\AppData\Local\Programs\Python\Python36\include/Python.h:8:0,.                  from C:\Users\Moondra\AppData\Local\Theano\compiledir_Windows-7-6.1.7601-SP1-Intel64_Family_6_Model_94_Stepping_3_GenuineIntel-3.6.0-64\lazylinker_ext\mod.cpp:1:. C:\Users\Moondra\AppData\Local\Programs\Python\Python36\include/pyconfig.h:269:23: error: '__int64' does not name a type.  # define PY_LONG_LONG __int64.                        ^. C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\core\include/numpy/npy_common.h:309:9: note: in expansion of macro 'PY_LONG_LONG'.  typedef PY_LONG_LONG npy_longlong;.          ^. In file included from C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\core\include/numpy/npy_3kcompat.h:22:0,.                  from C:\Users\Moondra\AppData\Local\Theano\compiledir_Windows-7-6.1.7601-SP1-Intel64_Family_6_Model_94_Stepping_3_GenuineIntel-3.6.0-64\lazylinker_ext\mod.cpp:7:. C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\core\include/numpy/npy_common.h:310:31: error: expected initializer before 'npy_ulonglong'.  typedef unsigned PY_LONG_LONG npy_ulonglong;.                                ^. In file included from C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\core\include/numpy/npy_3kcompat.h:22:0,.                  from C:\Users\Moondra\AppData\Local\Theano\compiledir_Windows-7-6.1.7601-SP1-Intel64_Family_6_Model_94_Stepping_3_GenuineIntel-3.6.0-64\lazylinker_ext\mod.cpp:7:. C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\core\include/numpy/npy_common.h:611:17: error: 'npy_longlong' does not name a type.          typedef npy_longlong npy_int64;.                  ^. C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\core\include/numpy/npy_common.h:612:17: error: 'npy_ulonglong' does not name a type.          typedef npy_ulonglong npy_uint64;.                  ^. C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\core\include/numpy/npy_common.h:1090:9: error: 'npy_int64' does not name a type.  typedef npy_int64 npy_timedelta;.          ^. C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\core\include/numpy/npy_common.h:1091:9: error: 'npy_int64' does not name a type.  typedef npy_int64 npy_datetime;.          ^. In file included from C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\core\include/numpy/ndarrayobject.h:18:0,.                  from C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\core\include/numpy/npy_3kcompat.h:23,.                  from C:\Users\Moondra\AppData\Local\Theano\compiledir_Windows-7-6.1.7601-SP1-Intel64_Family_6_Model_94_Stepping_3_GenuineIntel-3.6.0-64\lazylinker_ext\mod.cpp:7:. C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\core\include/numpy/ndarraytypes.h:742:9: error: 'npy_int64' does not name a type.          npy_int64 year;.          ^. C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\core\include/numpy/ndarraytypes.h:748:9: error: 'npy_int64' does not name a type.          npy_int64 day;.          ^. In file included from C:\Users\Moondra\AppData\Local\Theano\compiledir_Windows-7-6.1.7601-SP1-Intel64_Family_6_Model_94_Stepping_3_GenuineIntel-3.6.0-64\lazylinker_ext\mod.cpp:7:0:. C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\core\include/numpy/npy_3kcompat.h: In function 'int npy_PyFile_DupClose2(PyObject*, FILE*, off_t)':. C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\numpy\core\include/numpy/npy_3kcompat.h:274:41: error: 'lseek' was not declared in this scope.      if (npy_lseek(fd, orig_pos, SEEK_SET) == -1) {.                                          ^. 

During handling of the above exception, another exception occurred:

AttributeError                            Traceback (most recent call last)
<ipython-input-6-3397704bd624> in <module>()
----> 1 import theano

C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\theano\__init__.py in <module>()
     64     object2, utils)
     65 
---> 66 from theano.compile import (
     67     SymbolicInput, In,
     68     SymbolicOutput, Out,

C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\theano\compile\__init__.py in <module>()
      8         SpecifyShape, specify_shape, register_specify_shape_c_code)
      9 
---> 10 from theano.compile.function_module import *
     11 
     12 from theano.compile.mode import *

C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\theano\compile\function_module.py in <module>()
     19 from theano.compat import izip
     20 from theano.gof import graph
---> 21 import theano.compile.mode
     22 import theano.compile.profiling
     23 from theano.compile.io import (

C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\theano\compile\mode.py in <module>()
      8 import theano
      9 from theano import gof
---> 10 import theano.gof.vm
     11 from theano.configparser import config
     12 from theano.compile.ops import _output_guard

C:\Users\Moondra\AppData\Local\Programs\Python\Python36\lib\site-packages\theano\gof\vm.py in <module>()
    669 except ImportError:
    670     pass
--> 671 except (OSError, theano.gof.cmodule.MissingGXX) as e:
    672     # OSError happens when g++ is not installed.  In that case, we
    673     # already changed the default linker to something else then CVM.

AttributeError: module 'theano' has no attribute 'gof'

UPDATE:

I uninstalled theano using pip3.6 and conda ( I had two versions) and then reinstalled with conda install theano

Now I'm getting this error:

---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-6-3397704bd624> in <module>()
----> 1 import theano

ModuleNotFoundError: No module named 'theano'

Tried restarting Jupyter notebook as well, getting the No module named 'theano'

EDIT: Reinstalled theano a few times. I even restarted my computer. Still having this problem.

I see theano in the site-packages folder within the anaconda folder. So not understanding what the problem is.

The problem has reverted back to :

AttributeError: module 'theano' has no attribute 'gof'

Thank you.

Upvotes: 4

Views: 6116

Answers (3)

sushmit
sushmit

Reputation: 4603

Ensure you are following the installation procedures from Theano Install

For me in a windows environment & Python 3.6 following did the trick

>>> conda install numpy scipy mkl-service libpython m2w64-toolchain nose sphinx pydot-ng git

>>> conda install theano pygpu

Upvotes: 0

Duke
Duke

Reputation: 357

For me it was a compiler problem that resulted from a wrong (unexpected) g++ version being used for compilation.

In addition to the m2w64-toolchain package (which includes a g++ compiler that is "highly recommended" for use with theano, cf. installation instructions), I had a cygwin instance installed whose g++.exe was pointed to in the windows system's PATH variable. During import theano, the cygwin version was used instead of the m2w64-toolchain version.

See also this discussion where I found the solution: https://github.com/Theano/Theano/issues/6004

Upvotes: 1

Prayson W. Daniel
Prayson W. Daniel

Reputation: 15568

For me, this was a numpy version issue. Once I reinstalled my numpy to version 1.13.1, it worked.

Note: Make sure to update also other packages that depend on numpy such as Scikit-learn, etc in a way to be compatible. The best way is to create an env just for deep learning.

Upvotes: 1

Related Questions