Tensorflow: google.protobufから_descriptorImportErrorとして記述子をインポート:google.protobufという名前のモジュールがありません

作成日 2016年06月28日  ·  3コメント  ·  ソース: tensorflow/tensorflow

アマゾンウェブサービスのマイクロサービスプラットフォームでテンソルフローを使用するプロジェクトに取り組んでいますが、いくつか問題が発生しました。 pipを使用してtensorflowをvirtualenvにインストールしました。 次に、/ env / lib / python2.7 / site-packages /のコンテンツを取得し、ソースコードと一緒にAWS Lambdaの開発パッケージに圧縮しました(envは私のvirtualenvの名前です)。 これは、AWS LambdaプロセスにPythonライブラリを使用するためのプロセスであり、他のライブラリで問題が発生したことはありません。 私はこれをnumpy、scipy、Pillow、および他のはるかにサポートされていないライブラリの束に対して行いましたが、それらはすべてLambdaで正常に動作しました。

ただし、テンソルフローを使用しようとすると、次のように返されます。

モジュール 'classify'をインポートできません:トレースバック(最後の最後の呼び出し):ファイル"/var/task/tensorflow/python/__init__.py", 52行目from tensorflow.core.framework.graph_pb2 import *ファイル "/var/task/tensorflow/core/framework/graph_pb2.py"、6行目google.protobufから_descriptorとして記述子をインポートしますImportError:google.protobufという名前のモジュールがありませんテンソルフローのインポート中にエラーが発生しました。 bazelを使用している場合を除き、ソースディレクトリからテンソルフローをインポートしようとしないでください。 テンソルフローソースツリーを終了し、そこからPythonインタープリターを再起動してください。

classifyは、AWS Lambdaが呼び出され、説明したように/env/lib/python2.7/site-packages/のコンテンツとともに圧縮されたときに呼び出すソーススクリプトです。

これらのエラーは他のいくつかの場所で対処されていますが、おそらくそれらのいずれもラムダを使用していなかったため、それらのページで見つけた解決策はどれもうまくいきませんでした。 ラムダがライブラリをインポートする方法が原因で、テンソルフローがラムダで機能しない可能性はありますか? もしそうなら、とにかく私がzipとしてアップロードしたソースフォルダからテンソルフローパッケージをインポートしますか?

再現するための特定の手順:

ほとんどの人がAWSコンテナ内でテンソルフローを使用していないことを考えると、これはおそらくテンソルフローがサポートしているものではないことがわかりましたが、特に経験がなくても、誰かが助けてくれるか、少なくともベストショットを与えることができれば幸いですAWS。

ありがとう!!

最も参考になるコメント

さて、これが何をするのかわかりませんが、この問題全体が修正されました::

サイトパッケージにCD
touch google/__init__.py
サイトパッケージを圧縮する前にこれを行ってください
^ bash

全てのコメント3件

さて、これが何をするのかわかりませんが、この問題全体が修正されました::

サイトパッケージにCD
touch google/__init__.py
サイトパッケージを圧縮する前にこれを行ってください
^ bash

それは魅力的です。 問題が何であるかはわかりませんが、AWSラムダに固有の可能性があります。 この問題を閉じます。

私の旅行でこれにつまずいた。 Lambdaではなく、 protobufモジュールです: https ://github.com/google/protobuf/issues/1296

このページは役に立ちましたか?
0 / 5 - 0 評価