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

The problem arises from a broken installation of theano and has nothing to do with keras itself.

This error seems to be due to conflicts in the installed version of theano, as also suggested in this answer to a related question.

An easy way that should solve the problem without having to fiddle with the installed version and all that is to use conda as package manager and let it do the dirty work. If you choose to do this be aware that you should manage all of your python modules with it (even though with the latest versions you can install packages with the pip shipped with anaconda itself).

See the official documentation for how to install Anaconda. Once anaconda is set up you can install theano using simply conda install theano.

With conda is also often convenient to install the packages needed for some particular application, like Keras in your case, in an environment isolated from the rest of your python installation, for easier maintenance. Read the relevant docs to see how this would work.


I used conda to install theano and still got the same error. After much trial and error and StackOverflow searches, what worked for me was to first run:

conda install m2w64-toolchain

followed by:

conda install theano

Alternatively you can chain the modules together when you create an environment, for example:

conda create -n myenv python=3.5 m2w64-toolchain theano

Also important to follow @gtnbz2nyt's advice and restart your Python instance.