Не могу установить 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. (МакОС 10.13.4)


person Hector Esteban    schedule 14.07.2018    source источник
comment
Python 3.7 пока не поддерживается. Установите Python 3.6: если вы сварили Python 3, то brew remove python3, затем brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb.   -  person hoefling    schedule 14.07.2018
comment
Как отмечалось в предыдущем комментарии, TensorFlow пока не поддерживает python 3.7. Я только что протестировал установку tensorflow == 1.9 с python 3.6 с pip на osX, и он отлично работает.   -  person BiBi    schedule 15.07.2018
comment
Слово async стало зарезервированным ключевым словом в Python 3.7. Код предназначен для Python 3 ‹= 3.6.   -  person phd    schedule 18.07.2018
comment
@hoefling У меня та же проблема с Python 3.6.6. Python 3.6.6 тоже не поддерживается?   -  person Sourav Bhattacharjee    schedule 10.09.2018


Ответы (2)


Обновление: в версии 1.13 представлена ​​поддержка Python 3.7.

Недавний релиз-кандидат для версии 1.13 обеспечивает поддержку Python 3.7, в частности, предварительно скомпилированные колеса ЦП также доступны для MacOS 10.11 и новее (ссылка на 1.13.1). Установите как обычно:

$ pip install tensorflow>=1.13

Оригинальный ответ (устаревший)

tensorflow на данный момент не поддерживает Python 3.7. Причина этого в том, что:

  • tensorflow использует async в качестве имени параметра функции, а async и await стали зарезервированными ключевыми словами в Python 3.7 (как указано @phd в этот комментарий) - вот почему вы получаете ошибку импорта;

  • #P4# <блочная цитата> #P5#

Это означает, что обе проблемы должны быть исправлены, прежде чем tensorflow можно будет собрать и выпустить для Python 3.7 и Linux/MacOS. Вы можете отслеживать текущий статус здесь: issue #20517.

Следовательно, решением будет избегать Python 3.7, если вам нужно продолжить работу с tensorflow. Пока придерживайтесь Python 3.6.

Если вы хотите собрать tensorflow из исходного кода: предложен патч для исправления обоих вопросы. Если вы хотите попробовать его, следуйте инструкциям по Установка TensorFlow из исходников из официальных документов, разница только в начале:

  1. Клонировать репозиторий

    $ git clone https://github.com/tensorflow/tensorflow
    
  2. Скопируйте содержимое патча в файл, например. tf.patch

  3. Примените патч:

    $ git apply tf.patch
    
  4. Продолжите остальную часть учебника.

Также обратите внимание, что вам придется собрать последнюю версию protobuf, так как в нее недавно была добавлена ​​поддержка Python 3.7, но ее нет ни в одной выпущенной версии. Отредактируйте tensorflow/contrib/cmake/external/protobuf.cmake так, чтобы он указывал на текущий HEAD репозитория protobuf.

person hoefling    schedule 22.07.2018

Я пробовал эту команду на 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

person George Dimitriou    schedule 12.04.2020
comment
Самый простой способ установить tensorflow v1 на macOS (в том числе и на Мохаве)! Спасибо! - person skabbit; 28.09.2020