python macos tensorflow pip python-3.7

python - No se puede instalar Tensorflow Mac



macos pip (1)

Actualización: la versión 1.13 introduce el soporte de Python 3.7

La reciente versión candidata para la versión 1.13 ofrece compatibilidad con Python 3.7, en particular, las ruedas de CPU precompiladas también están disponibles para MacOS 10.11 y posteriores ( enlace a 1.13.1 ). Instalar como de costumbre:

$ pip install tensorflow>=1.13

Respuesta original (desactualizada)

tensorflow no es compatible con Python 3.7 en este momento. La razón de esto es que:

  • tensorflow usa async como nombre de parámetro de función, y async y await convirtieron en palabras clave reservadas en Python 3.7 (como lo señala @phd en este comentario ): esta es la razón por la que está obteniendo el error de importación;

  • Python 3.7 cambió el tipo de PyUnicode_AsUTF8AndSize función PyUnicode_AsUTF8AndSize en la API de C utilizada por tensorflow :

    Modificado en la versión 3.7: El tipo de retorno ahora es const char * lugar de char * .

Esto significa que ambos problemas deben solucionarse antes de que se pueda crear y lanzar tensorflow para Python 3.7 y Linux / MacOS. Puede seguir el estado actual aquí: problema # 20517 .

Por lo tanto, la solución sería evitar Python 3.7 si necesita continuar trabajando con tensorflow . Quédate con Python 3.6 por el momento.

Si está dispuesto a generar tensorflow desde la fuente: hay un parche propuesto para solucionar ambos problemas . Si quieres probarlo, sigue el tutorial de instalación de TensorFlow from Sources de los documentos oficiales, la única diferencia está en el principio:

  1. Clonar el repositorio

    $ git clone https://github.com/tensorflow/tensorflow

  2. Copie el contenido del parche en un archivo, por ejemplo, tf.patch

  3. Aplique el parche:

    $ git apply tf.patch

  4. Continúa con el resto del tutorial.

También tenga en cuenta que tendrá que compilar el último protobuf , ya que el soporte para Python 3.7 se agregó recientemente, pero no está incluido en ninguna versión publicada. Edite tensorflow/contrib/cmake/external/protobuf.cmake para apuntar a la HEAD actual del repositorio de protobuf .

Revisé mi versión de pip3 y 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

En el entorno virtual que estoy usando actualmente lo hice:

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

Como la forma estándar en que pip3 install tensorflow sale el siguiente mensaje:

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

Después de instalado usando el primer 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

¿Cual es el problema? Puedo descargar otros paquetes como numpy pero no Tensorflow. (MacOS 10.13.4)