J'ai vérifié ma version pip3 et 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
Dans l'environnement virtuel que j'utilise actuellement, j'ai fait:
pip3 install --upgrade https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.9.0-py3-none-any.whl
Comme moyen standard pip3 install tensorflow
affiche le message suivant:
could not find a version that satisfies the requirement tensorflow (from versions: )
Après l'installation en utilisant la première méthode expliquée:
(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
Quelle est la solution? Je peux télécharger d'autres packages tels que numpy mais pas Tensorflow. (MacOS 10.13.4)
La récente version candidate pour la version 1.13 apporte Python 3.7, en particulier les roues de CPU précompilées sont également disponibles pour MacOS 10.11 et plus récent ( lien vers 1.13.1 ). Installez comme d'habitude:
$ pip install tensorflow>=1.13
tensorflow
ne prend pas en charge Python 3.7 pour le moment. La raison en est que:
tensorflow
utilise async
comme nom de paramètre de fonction, et async
et await
sont devenus des mots clés réservés dans Python 3.7 (comme indiqué par @phd dans ce commentaire ) - c'est pourquoi vous obtenez l'erreur d'importation;
Python 3.7 a changé le type de retour de PyUnicode_AsUTF8AndSize
fonction dans l'API C utilisée par tensorflow
:
Modifié dans la version 3.7: le type de retour est maintenant
const char *
plutôt dechar *
.
Cela signifie que les deux problèmes doivent être résolus avant que tensorflow
puisse être construit et publié pour Python 3.7 et Linux/MacOS. Vous pouvez suivre l'état actuel ici: problème # 20517 .
La solution serait donc d'éviter Python 3.7 si vous devez continuer à travailler avec tensorflow
. Restez avec Python 3.6 pour le moment).
Si vous êtes prêt à construire tensorflow
à partir de la source: n correctif est proposé pour résoudre les deux problèmes . Si vous voulez l'essayer, suivez le tutoriel Install TensorFlow from Sources des documents officiels, la seule différence étant au début:
Clonez le référentiel
$ git clone https://github.com/tensorflow/tensorflow
Copiez le contenu du patch dans un fichier, par ex. tf.patch
Appliquez le patch:
$ git apply tf.patch
Continuez avec le reste du didacticiel.
Notez également que vous devrez construire la dernière protobuf
, car la prise en charge de Python 3.7 a été ajoutée récemment, mais n'est contenue dans aucune version publiée. Edit tensorflow/contrib/cmake/external/protobuf.cmake
pour pointer vers le HEAD
actuel du référentiel protobuf
.
J'ai essayé cette commande sur macOS Catalina (Python 3.6) et elle a fonctionné correctement:
$ python3 -m pip install --upgrade https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.12.0-py3-none-any.whl