Search code examples
pythontensorflowsyntax-error

SyntaxError when importing Tensorflow on a mac


I am trying to install Tensorflow on a Mac using the instructions from https://www.tensorflow.org/install/. But when I try to import it, I get a syntax error like so:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/tensorflow/init.py", line 22, in <module>
    from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/tensorflow/python/init.py", line 49, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/tensorflow/python pywrap_tensorflow_internal.py", line 114
    def TFE_ContextOptionsSetAsync(arg1, async): 
                                         ^
SyntaxError: invalid syntax

I tried uninstalling protobuf and reinstalling tensorflow, but the problem persists.

What is wrong, and how can I fix it?


Solution

  • This seems to be an issue with python version 3.7 as you can also see in this github issue. Apparently the cause is that async is a keyword in 3.7. Good news is that there also seems to be a solution:

    As mentioned in the github issue: Renaming async to e.g. async1 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/tensorflow/python/pywrap_tensorflow_internal.py gets rid of the issue

    Note: There are multiple links inside of the github issue, also references to commits fixing 3.7. incompatabilities, so cloning the github and installing from source might also be an option