2015-11-11 24 views
12

El Capitan OSはここにあります。私は私のipythonノートブックにインポートTensorflowで回避策を見つけることを試みてきたが、これまで運がない。Tensorflowをインポートできません "モジュール名はcopyreg"

フォーラムの多くの人たちと同じように、6つのパッケージのためにtensorflowのインストールに関する問題もありました。私はいくつかの醸造の後にインストールすることができました

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 

テンソルフローが正しくインストールされたというメッセージが表示されました。私はipythonのノートブック上だと私はimport tensorflowは私がメッセージを手に入れたとき、しかし

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) 

::私はさらに掘ってきたImportError: No module named tensorflow

をし、これを見つけた私はsudo pip install tensorflowをした場合でも、私はメッセージを取得しますインポート時のエラー:

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

通常はシェルからTFをインポートできますか(問題がipythonの場合)?あなたはcopyregをインポートできますか(このモジュールをインストールするだけではない場合)? –

+0

私は 'six import copyreg'を実行しようとしましたが、モジュール –

+0

を見つけることができず、インストールしようとしましたか?私はそれを非常に明確に書いています。「このモジュールをインストールするだけです。 –

答えて

27

ヨナがコメントしたように、これはこれで解決しています:

MacOSXの

では、あなたが発生した場合:

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

ソリューション:TensorFlowは6-1.10.0が必要でいるProtobufに依存。 AppleのデフォルトのPython環境は6つの1.4.1を持ち、アップグレードするのが難しいかもしれません。

brew install python 

しかし、私は非常にこの目的のためにvirtualenvの使用をお勧めします:だから私たちは自作を経由してのpythonの別のコピーをインストールするのいずれかをお勧めします。

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

次に、新しいvirtualenv環境を設定します。ディレクトリ~/tensorflowでそれを設定するには、実行します。

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

が続いてvirtualenvのアクティブ化:virtualenvのインサイド

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

を、TensorFlowをインストールします。

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

をあなたは、あなたのTensorFlowを実行することができますプログラムは次のようになります:

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

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

$ # Your prompt should change back 
0

CopyregはPython2の6つのモジュールにあります。

短い答えは、6をインストール/アップグレードしてみてください:

pip install -U six 
+0

私はそれをやってみましたが、6つはすでに最新バージョンになっています。 –

0

たぶん6を再インストールしてみてください。他のライブラリとは異なる場所にあるようです。 /Library/Python/.../usr/local/lib/...これはおそらく6つが自作のpythonの前にインストールされたことを意味します。

0

これを修正しようとしたもう一つの簡単な方法は、ソースコードpython_message.pyを編集し、import six.moves.copyreg as copyregfrom six.moves import copyregに変更することです。

もちろん、この読み取り専用ファイルを変更するには、この読み取り専用ファイルのアクセス許可を変更する必要があります。

関連する問題