web-dev-qa-db-ja.com

Tensorflow Macをインストールできません

私は私のpip3&python3バージョンをチェックしました:

  (tensorflow) MacBook-Pro-de-Hector-2:tensorflow hectoresteban$ pip3 -V
    pip 10.0.1 from /Users/hectoresteban/.virtualenvs/tensorflow/lib/python3.7/site-packages/pip-10.0.1-py3.7.Egg/pip (python 3.7)

(tensorflow) MacBook-Pro-de-Hector-2:tensorflow hectoresteban$ python3 -V
Python 3.7.0

私が現在使用している仮想環境では、次のことを行いました。

pip3 install --upgrade https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.9.0-py3-none-any.whl

標準的な方法としてpip3 install tensorflow次のメッセージを出力します:

could not find a version that satisfies the requirement tensorflow (from versions: )

説明した最初の方法を使用してインストールした後:

(tensorflow) MacBook-Pro-de-Hector-2:tensorflow hectoresteban$ python3
>>> import tensorflow
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/hectoresteban/.virtualenvs/tensorflow/lib/python3.7/site-packages/tensorflow/__init__.py", line 22, in <module>
    from tensorflow.python import pywrap_tensorflow  # pylint: disable=unused-import
  File "/Users/hectoresteban/.virtualenvs/tensorflow/lib/python3.7/site-packages/tensorflow/python/__init__.py", line 49, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "/Users/hectoresteban/.virtualenvs/tensorflow/lib/python3.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "/Users/hectoresteban/.virtualenvs/tensorflow/lib/python3.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 114
    def TFE_ContextOptionsSetAsync(arg1, async):
                                             ^
SyntaxError: invalid syntax

問題は何ですか? numpyなどの他のパッケージをダウンロードできますが、Tensorflowはダウンロードできません。 (MacOS 10.13.4)

更新:バージョン1.13はPython 3.7サポートを導入します

1.13バージョンの最近のリリース候補は、Python 3.7のサポートを提供します。特に、コンパイル済みのCPUホイールはMacOS 10.11以降でも使用できます( 1.13.1へのリンク )。通常どおりインストールします。

$ pip install tensorflow>=1.13

元の回答(古い)

tensorflowは、現時点ではPython 3.7をサポートしていません。この理由は次のとおりです。

  • tensorflowasyncを関数パラメーター名として使用し、asyncおよびawaitはPython 3.7で予約済みキーワードになりました このコメント で@phdが指すように)-これが理由ですインポートエラーの再取得。

  • Python 3.7は、tensorflowで使用されるC APIの関数 PyUnicode_AsUTF8AndSize の戻り値の型を変更しました:

    バージョン3.7で変更:戻り値の型がconst char *ではなくchar *になりました。

これは、tensorflowをビルドしてリリースする前に、両方の問題を修正する必要があることを意味しますPython 3.7&Linux/MacOS。現在のステータスはここで追跡できます: issue#20517

したがって、解決策は、tensorflowを引き続き使用する必要がある場合はPython 3.7を回避することです。当面はPython 3.6を使用してください。

ソースからtensorflowをビルドする場合: 両方の問題を修正するパッチが提案されています 。試してみたい場合は、公式ドキュメントの Install TensorFlow from Sources チュートリアルに従ってください。最初の違いのみです。

  1. リポジトリを複製する

    $ git clone https://github.com/tensorflow/tensorflow
    
  2. パッチの内容をファイルにコピーします。 tf.patch

  3. パッチを適用します。

    $ git apply tf.patch
    
  4. チュートリアルの残りの部分に進みます。

また、Python 3.7のサポートが最近追加されたが、リリースされたどのバージョンにも含まれていないため、最新のprotobufをビルドする必要があることにも注意してください。tensorflow/contrib/cmake/external/protobuf.cmakeを編集して、 HEADリポジトリの現在のprotobufに。

13
hoefling

私はmacOS Catalina(Python 3.6)でこのコマンドを試しましたが、正しく実行されました:

$ python3 -m pip install --upgrade https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.12.0-py3-none-any.whl

0