私は私の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のサポートを提供します。特に、コンパイル済みのCPUホイールはMacOS 10.11以降でも使用できます( 1.13.1へのリンク )。通常どおりインストールします。
$ pip install tensorflow>=1.13
tensorflow
は、現時点ではPython 3.7をサポートしていません。この理由は次のとおりです。
tensorflow
はasync
を関数パラメーター名として使用し、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 チュートリアルに従ってください。最初の違いのみです。
リポジトリを複製する
$ git clone https://github.com/tensorflow/tensorflow
パッチの内容をファイルにコピーします。 tf.patch
パッチを適用します。
$ git apply tf.patch
チュートリアルの残りの部分に進みます。
また、Python 3.7のサポートが最近追加されたが、リリースされたどのバージョンにも含まれていないため、最新のprotobuf
をビルドする必要があることにも注意してください。tensorflow/contrib/cmake/external/protobuf.cmake
を編集して、 HEAD
リポジトリの現在のprotobuf
に。
私は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