Keras recently moved two of its submodules to separate modules---keras-applications, and keras-preprocessing . These also import keras and will not work without it, nor will keras work without those submodules. Currently the submodule packages depend on keras, but making keras depend on the submodules creates unresolvable circular dependencies. Currently the submodules are listed as optional dependencies of keras with the note that keras will not work without them.
This seems like a problem to me. Someone wanting to install keras will be able to do so without installing the submodules but won't be able to use it without them. The only warning will be the optional dependencies which seems insufficient to me. Since both actually depend on the other(s) to work, the only solution I can see is to include them all in the python-keras package. Is there any other way to resolve this? Is it not as big of a deal as I think it is? How would such a change even get implemented? Thanks.