成功pip install
后,导入tensorflow库失败。
>>> import tensorflow
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.7/site-packages/tensorflow/__init__.py", line 4, in <module>
from tensorflow.python import *
File "/Library/Python/2.7/site-packages/tensorflow/python/__init__.py", line 13, in <module>
from tensorflow.core.framework.graph_pb2 import *
File "/Library/Python/2.7/site-packages/tensorflow/core/framework/graph_pb2.py", line 8, in <module>
from google.protobuf import reflection as _reflection
File "/Library/Python/2.7/site-packages/google/protobuf/reflection.py", line 58, in <module>
from google.protobuf.internal import python_message as message_impl
File "/Library/Python/2.7/site-packages/google/protobuf/internal/python_message.py", line 59, in <module>
import six.moves.copyreg as copyreg
ImportError: No module named copyreg
答案 0 :(得分:21)
您可以使用
升级到6-1.10.x.easy_install -U six
这会将当前版本的6从1.4升级到1.10.x,这是tensorflow所要求的。
答案 1 :(得分:3)
解决方案:TensorFlow依赖于需要6-1.10.0的protobuf。 Apple的默认python环境有6个1.4.1,可能很难升级。所以我们建议通过自制软件安装一个单独的python副本:
brew install python
或如上所述在virtualenv中构建/使用TensorFlow。
答案 2 :(得分:1)
copyreg
是一个python3
函数,位于six
的{{1}}模块中,请参阅https://docs.python.org/2/library/copy_reg.html#module-copy_reg
要获得python2.x
,您必须安装copyreg
:
six
(注意:在pip install -U six
中,您可以使用(i)python2
访问该功能,或者使用six.copy_reg
导入模块时,它会保留six.moves.*
语法,即python3
)
答案 3 :(得分:0)
由于没有建议的修复程序对我有效,我改变了行
import six.moves.copyreg as copyreg
到
from six.moves import copyreg
这似乎解决了这个问题。但是,我得到另一个ImportError,而不是说
dlopen(/Library/Python/2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so, 2): no suitable image found. Did find:
/Library/Python/2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so: mach-o, but wrong architecture
如果其他人可能比我更成功,那就把这个作为答案发布。