2015-11-10 26 views
11

Po pomyślnym przeprowadzeniu pip install, importowanie biblioteki tensorflow kończy się niepowodzeniem.Tensorflow z powodzeniem instaluje się na Macu, ale pobiera ImportError na copyreg, gdy jest używany

>>> 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

Masz odpowiedź tutaj: https://stackoverflow.com/questions/33656551/unable-to-import-tensorflow/33691154#33691154 –

+0

Po prostu użyj dokera ... – cregox

+0

Dlaczego to pytanie jest zamknięte jako niejasne? –

Odpowiedz

3

Rozwiązanie: TensorFlow zależy od protobuf, które wymagają sześciu -1,10,0. Domyślne środowisko Pythona firmy Apple ma sześć wersji 1.4.1 i może być trudne do uaktualnienia. Dlatego zalecamy albo instalując oddzielną kopię pytona poprzez homebrew:

napar zainstalować python

lub budynek/używanie TensorFlow ciągu virtualenv jak opisano powyżej.

+5

Ulepszenie szóstki może nie być takie trudne. Spróbuj uruchomić 'easy_install -U six' Aktualne instrukcje [tutaj] (https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md#on-macosx-) – dsmilkov

+1

bardzo dziękuję, napisz zainstaluj pythona rozwiązał mój problem – feng

+0

napisz zainstaluj python zrobił to dla mnie też – atlex2

21

Można uaktualnić do sześciu 1.10.x użyciu

easy_install -U six 

To uaktualnienie bieżącej wersji szóstej od 1,4 do 1.10.x, który jest wymagany przez tensorflow.

+0

To zadziałało dla mnie, dzięki @abhilash – Mandy

+0

@Mandy Zapraszamy! –

+1

Dziękuję. Ulepszenie działało dla mnie. Uaktualniłem również numpy w taki sam sposób, jak 'easy_install -U numpy', ponieważ wymagana była wersja numpy 1.9.2 lub nowsza. –

1

copyreg jest python3 funkcja, która jest dostępna w module w python2.xsix patrz https://docs.python.org/2/library/copy_reg.html#module-copy_reg

Aby uzyskać copyreg, trzeba zainstalować six:

pip install -U six 

(Uwaga: W python2, masz dostęp może uzyskać dostęp do funkcji za pomocą (i) six.copy_reg lub gdy moduł jest importowany z six.moves.*, zachowuje składnię python3, tj. six.moves.copyreg)

0

Ponieważ zakaz z sugerowanych poprawek pracował dla mnie, zmieniłem linię

import six.moves.copyreg as copyreg 

do

from six.moves import copyreg 

a to wydawało się to naprawić ten problem. Jednak mam inny ImportError zamiast mówiąc

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 

Wystarczy delegowania to jako odpowiedź, jeśli ktoś może ma więcej sukcesów w tym ode mnie.