El Capitan OS here. I've been trying to find a workaround with import Tensorflow into my ipython notebook, but so far no luck.
Like many people in the forums, I've also had issues with install tensorflow because of the six package. I was able to install after some fidgeting with brew
brew link gdbm
brew install python
rew linkapps python
sudo pip install https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl
I got a message that tensorflow was installed correctly. Even when I did sudo pip install tensorflow
I get the message:
Requirement already satisfied (use --upgrade to upgrade): tensorflow in /usr/local/lib/python2.7/site-packages
Requirement already satisfied (use --upgrade to upgrade): six>=1.10.0 in /Library/Python/2.7/site-packages (from tensorflow)
Requirement already satisfied (use --upgrade to upgrade): numpy>=1.9.2 in /usr/local/lib/python2.7/site-packages (from tensorflow)
However, when I'm on my ipython notebook and I did an import tensorflow
I get the message: ImportError: No module named tensorflow
I've dug further and found this error on the import as well:
In [1]: import tensorflow
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-1-a649b509054f> in <module>()
----> 1 import tensorflow
/usr/local/lib/python2.7/site-packages/tensorflow/__init__.py in <module>()
2 # module.
3 # pylint: disable=wildcard-import
----> 4 from tensorflow.python import *
/usr/local/lib/python2.7/site-packages/tensorflow/python/__init__.py in <module>()
11
12 import tensorflow.python.platform
---> 13 from tensorflow.core.framework.graph_pb2 import *
14 from tensorflow.core.framework.summary_pb2 import *
15 from tensorflow.core.framework.config_pb2 import *
/usr/local/lib/python2.7/site-packages/tensorflow/core/framework/graph_pb2.py in <module>()
6 from google.protobuf import descriptor as _descriptor
7 from google.protobuf import message as _message
----> 8 from google.protobuf import reflection as _reflection
9 from google.protobuf import symbol_database as _symbol_database
10 from google.protobuf import descriptor_pb2
/usr/local/lib/python2.7/site-packages/google/protobuf/reflection.py in <module>()
56 from google.protobuf.pyext import cpp_message as message_impl
57 else:
---> 58 from google.protobuf.internal import python_message as message_impl
59
60 # The type of all Message classes.
/usr/local/lib/python2.7/site-packages/google/protobuf/internal/python_message.py in <module>()
57
58 import six
---> 59 import six.moves.copyreg as copyreg
60
61 # We use "as" to avoid name collisions with variables.
ImportError: No module named copyreg
Copyreg can be found in the six module in Python2.
Short answer, try upgrading/installing six:
As Jonah commented, it's solved by this:
On MacOSX
If you encounter:
Solution: TensorFlow depends on protobuf which requires six-1.10.0. Apple's default python environment has six-1.4.1 and may be difficult to upgrade. So we recommend either installing a separate copy of python via homebrew:
But I highly recommend using virtualenv for this purpose.
Next, set up a new virtualenv environment. To set it up in the directory
~/tensorflow
, run:Then activate the virtualenv:
Inside the virtualenv, install TensorFlow:
You can then run your TensorFlow program like:
Another simple way I tried to fix this is to edit the source code and
python_message.py
and change the lineimport six.moves.copyreg as copyreg
intofrom six.moves import copyreg
.Of course you might need to change the permission of this read-only file in order to modify it.
Maybe try reinstalling six. It looks like it is in a different location from your other libraries.
/Library/Python/...
vs/usr/local/lib/...
This probably means that six was install before homebrew python.