11

成功后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
4

4 回答 4

21

您可以使用升级到 6-1.10.x

easy_install -U six

这会将当前版本的 6 从 1.4 升级到 1.10.x,这是 tensorflow 所需的。

于 2015-11-10T08:37:35.777 回答
3

解决方案:TensorFlow 依赖 protobuf,需要 6-1.10.0。苹果默认的python环境有六个-1.4.1,升级可能比较困难。因此,我们建议通过自制软件安装单独的 python 副本:

酿造安装蟒蛇

或如上所述在 virtualenv 中构建/使用 TensorFlow。

于 2015-11-10T03:43:36.203 回答
1

copyreg是模块中python3可用的函数,请参阅https://docs.python.org/2/library/copy_reg.html#module-copy_regsixpython2.x

要获得copyreg,您必须安装six

pip install -U six

(注意:在python2中,您可以使用 (i) 访问函数,six.copy_reg或者当使用 导入模块时six.moves.*,它会保留python3语法,即six.moves.copyreg)

于 2015-11-10T18:28:33.907 回答
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

如果其他人在这方面可能比我更成功,请将其发布为答案。

于 2015-11-10T22:46:51.767 回答