Ответ 1
Вы можете обновить до шести-1.10.x, используя
easy_install -U six
Это позволит обновить текущую версию из шести от 1.4 до 1.10.x, что требуется тензорным потоком.
После успешной 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
Вы можете обновить до шести-1.10.x, используя
easy_install -U six
Это позволит обновить текущую версию из шести от 1.4 до 1.10.x, что требуется тензорным потоком.
Решение: TensorFlow зависит от protobuf, для которого требуется шесть-1.10.0. Стандартная среда python для Apple по умолчанию имеет шесть-1.4.1 и может быть сложной для обновления. Поэтому мы рекомендуем либо установить отдельную копию python через homebrew:
brew установить python
или создание/использование TensorFlow в virtualenv, как описано выше.
copyreg
- это функция python3
, доступная в модуле six
в python2.x
, см. 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
)
Поскольку из предложенных исправлений я работал, я изменил строку
import six.moves.copyreg as copyreg
to
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
Просто опубликуйте это как ответ, если у кого-то может быть больше успеха в этом, чем у меня.