El Capitan OS在这里。我一直试图找到一个将Tensorflow导入我的ipython笔记本的解决方法,但到目前为止还没有运气。
与论坛中的很多人一样,由于六个包,我也遇到了安装张量流问题。我可以在使用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
我收到一条消息,表明tensorflow已正确安装。即使我做sudo pip install tensorflow
我也收到了消息:
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)
然而,当我在我的ipython笔记本上并且我做了import tensorflow
时,我收到了消息:ImportError: No module named tensorflow
我进一步挖掘并在导入时发现了这个错误:
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
答案 0 :(得分:27)
正如乔纳所评论的那样,它已经解决了:
在MacOSX上
如果遇到:
import six.moves.copyreg as copyreg
ImportError: No module named copyreg
解决方案:TensorFlow依赖于protobuf,需要6-1.10.0。 Apple的默认python环境有6个1.4.1,可能很难升级。所以我们建议通过自制软件安装一个单独的python副本:
brew install python
但我强烈建议将virtualenv用于此目的。
# On Mac:
$ sudo easy_install pip # If pip is not already installed
$ sudo pip install --upgrade virtualenv
接下来,设置一个新的virtualenv环境。要在目录~/tensorflow
中进行设置,请运行:
$ virtualenv --system-site-packages ~/tensorflow
$ cd ~/tensorflow
然后激活virtualenv:
$ source bin/activate # If using bash
$ source bin/activate.csh # If using csh
(tensorflow)$ # Your prompt should change
在virtualenv中,安装TensorFlow:
(tensorflow)$ pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl
然后您可以运行TensorFlow程序,如:
(tensorflow)$ python tensorflow/models/image/mnist/convolutional.py
# When you are done using TensorFlow:
(tensorflow)$ deactivate # Deactivate the virtualenv
$ # Your prompt should change back
答案 1 :(得分:0)
Copyreg可以在Python2的六个模块中找到。
简短回答,尝试升级/安装六:
pip install -U six
答案 2 :(得分:0)
也许尝试重新安装六个。它看起来与您的其他库位于不同的位置。 /Library/Python/...
vs /usr/local/lib/...
这可能意味着在homebrew python之前安装了六个。
答案 3 :(得分:0)
我尝试解决此问题的另一种简单方法是编辑源代码并python_message.py
并将行import six.moves.copyreg as copyreg
更改为from six.moves import copyreg
。
当然,您可能需要更改此只读文件的权限才能对其进行修改。