本文介绍了无法导入 Tensorflow “No module named copyreg"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这里是 El Capitan 操作系统.我一直试图找到一种将 Tensorflow 导入到我的 ipython 笔记本中的解决方法,但到目前为止还没有运气.

El Capitan OS here. I've been trying to find a workaround with import Tensorflow into my ipython notebook, but so far no luck.

像论坛中的许多人一样,由于六个包,我也遇到了安装 tensorflow 的问题.在对 brew 进行一些烦躁后,我能够安装

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

我收到一条消息,表明 tensorflow 已正确安装.即使我做了 sudo pip install tensorflow 我也收到消息:

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)

但是,当我在 ipython 笔记本上执行 import tensorflow 时,我收到消息:ImportError: No module named 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

推荐答案

正如 Jonah 评论的那样,它是这样解决的:

As Jonah commented, it's solved by this:

在 MacOSX 上

如果您遇到:

import six.moves.copyreg as copyreg
ImportError: No module named copyreg

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

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:

brew install python

但我强烈建议为此目的使用 virtualenv.

But I highly recommend using virtualenv for this purpose.

# On Mac:
$ sudo easy_install pip  # If pip is not already installed
$ sudo pip install --upgrade virtualenv

接下来,设置一个新的 virtualenv 环境.要在目录 ~/tensorflow 中进行设置,请运行:

Next, set up a new virtualenv environment. To set it up in the directory ~/tensorflow, run:

$ virtualenv --system-site-packages ~/tensorflow
$ cd ~/tensorflow

然后激活virtualenv:

Then activate the virtualenv:

$ source bin/activate  # If using bash
$ source bin/activate.csh  # If using csh
(tensorflow)$  # Your prompt should change

在 virtualenv 中,安装 TensorFlow:

Inside the virtualenv, install TensorFlow:

(tensorflow)$ pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl

然后您可以像这样运行您的 TensorFlow 程序:

You can then run your TensorFlow program like:

(tensorflow)$ python tensorflow/models/image/mnist/convolutional.py

# When you are done using TensorFlow:
(tensorflow)$ deactivate  # Deactivate the virtualenv

$  # Your prompt should change back

这篇关于无法导入 Tensorflow “No module named copyreg"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 10:01