python compile Não é possível instalar o Tensorflow Mac



tensorflow 2 install (1)

Eu verifiquei minha versão do pip3 e 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

No ambiente virtual que estou usando atualmente, fiz:

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

Como o modo padrão pip3 install tensorflow saída do pip3 install tensorflow a seguinte mensagem:

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

Depois de instalado usando o primeiro método explicado:

(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

Qual é o problema? Eu posso baixar outros pacotes, como numpy mas sem Tensorflow. (MacOS 10.13.4)

https://src-bin.com


Answer #1

Atualização: a versão 1.13 apresenta o suporte ao Python 3.7

O recente release candidate para a versão 1.13 traz suporte ao Python 3.7, em particular rodas de CPU pré-compiladas também estão disponíveis para MacOS 10.11 e mais recentes ( link para 1.13.1 ). Instale como de costume:

$ pip install tensorflow>=1.13

Resposta original (desatualizada)

tensorflow não suporta o Python 3.7 no momento. A razão para isso é que:

  • tensorflow usa async como function parameter name, e async e await se tornam palavras-chave reservadas no Python 3.7 (como apontado por @phd neste comentário ) - é por isso que você está recebendo o erro de importação;

  • O Python 3.7 alterou o tipo de retorno da função PyUnicode_AsUTF8AndSize na API C usada pelo tensorflow :

    Alterado na versão 3.7: O tipo de retorno é agora const char * vez de char * .

Isso significa que ambos os problemas devem ser corrigidos antes que o tensorflow possa ser tensorflow e liberado para o Python 3.7 e Linux / MacOS. Você pode acompanhar o status atual aqui: issue # 20517 .

A solução, portanto, seria evitar o Python 3.7 se você precisar continuar trabalhando com o tensorflow . Fique com o Python 3.6 por enquanto.

Se você está disposto a construir tensorflow partir da fonte: Existe um patch proposto para corrigir os dois problemas . Se você quiser experimentá-lo, siga o tutorial Instalar TensorFlow from Sources a partir dos documentos oficiais, a única diferença sendo no começo:

  1. Clone o repositório

    $ git clone https://github.com/tensorflow/tensorflow
  2. Copie o conteúdo do patch para um arquivo, por exemplo, tf.patch

  3. Aplique o patch:

    $ git apply tf.patch
  4. Continue com o resto do tutorial.

Note também que você terá que construir o protobuf mais recente, já que o suporte para Python 3.7 foi adicionado recentemente, mas não está contido em nenhuma versão lançada. Edite tensorflow/contrib/cmake/external/protobuf.cmake para apontar para o HEAD atual do protobuf .





python-3.7