Tensorflow 在 mac 上成功安装,但在使用时在 copyreg 上出现 ImportError [关闭]

Posted

技术标签:

【中文标题】Tensorflow 在 mac 上成功安装,但在使用时在 copyreg 上出现 ImportError [关闭]【英文标题】:Tensorflow successfully installs on mac but gets ImportError on copyreg when used [closed] 【发布时间】:2016-02-10 20:38:25 【问题描述】:

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

【问题讨论】:

在这里有答案:***.com/questions/33656551/… 为什么这个问题因为不清楚而关闭? 【参考方案1】:

您可以使用

升级到 6-1.10.x
easy_install -U six

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

【讨论】:

这对我有用,谢谢@abhilash @Mandy 不客气! 谢谢。升级对我有用。我也以相同的方式升级了 numpy easy_install -U numpy,因为需要 numpy 版本 1.9.2 或更高版本。【参考方案2】:

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

brew 安装 python

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

【讨论】:

升级六个可能并不难。尝试运行easy_install -U six 最新指令here 非常感谢,brew install python 解决了我的问题 brew install python 也为我做了【参考方案3】:

copyreg 是一个python3 函数,可在python2.xsix 模块中使用,请参阅https://docs.python.org/2/library/copy_reg.html#module-copy_reg

要获取copyreg,你必须安装six

pip install -U six

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

【讨论】:

【参考方案4】:

由于没有建议的修复对我有用,我更改了行

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

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

【讨论】:

以上是关于Tensorflow 在 mac 上成功安装,但在使用时在 copyreg 上出现 ImportError [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何MAC上安装tensorflow模块

Mac下安装tensorflow不成功,啥原因

Mac下安装tensorflow不成功,啥原因

mac上搭建tensorflow

Mac安装最新tensorflow遇到的坑,记录下方便后人

在Mac上安装tensorflow和virtualenv