无法安装Tensorflow Mac

Hec*_*zos 9 python macos pip tensorflow python-3.7

我检查了我的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
Run Code Online (Sandbox Code Playgroud)

在我目前正在使用的虚拟环境中:

pip3 install --upgrade https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.9.0-py3-none-any.whl
Run Code Online (Sandbox Code Playgroud)

以标准方式pip3 install tensorflow输出以下消息:

could not find a version that satisfies the requirement tensorflow (from versions: )
Run Code Online (Sandbox Code Playgroud)

安装后使用第一种方法解释:

(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
Run Code Online (Sandbox Code Playgroud)

有什么问题?我可以下载其他软件包,如numpy但没有Tensorflow.(MacOS 10.13.4)

hoe*_*ing 13

更新:1.13版引入了Python 3.7支持

1.13版本的最新版本候选版本支持Python 3.7,特别是预编译的CPU轮子也可用于MacOS 10.11和更新版本(链接到1.13rc1).如果要测试它,请照常安装:

$ pip install tensorflow>=1.13
Run Code Online (Sandbox Code Playgroud)

一旦它出来,不要忘记将安装升级到1.13.


原始答案(过时)

tensorflow目前不支持Python 3.7.原因是:

  • tensorflow使用async作为函数参数的名称,asyncawait在Python 3.7(为指出由@phd成为保留关键字此评论) -这就是为什么你得到的导入错误;

  • Python 3.7更改了以下PyUnicode_AsUTF8AndSize使用的C API中的函数返回类型tensorflow:

    在版本3.7中更改:现在返回类型const char *而不是char *.

这意味着必须先解决这两个问题,然后tensorflow才能为Python 3.7和Linux/MacOS构建和发布这两个问题.您可以在此处跟踪当前状态:问题#20517.

因此,如果您需要继续使用,解决方案将避免使用Python 3.7 tensorflow.暂时坚持使用Python 3.6.

如果您愿意tensorflow从源代码构建:有一个补丁可以解决这两个问题.如果您想尝试一下,请按照官方文档中的Sources安装TensorFlow教程,唯一的区别在于开头:

  1. 克隆存储库

    $ git clone https://github.com/tensorflow/tensorflow
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将补丁内容复制到文件,例如 tf.patch

  3. 应用补丁:

    $ git apply tf.patch
    
    Run Code Online (Sandbox Code Playgroud)
  4. 继续本教程的其余部分.

另请注意,您必须构建最新版本protobuf,因为最近添加了对Python 3.7的支持,但未包含在任何已发布的版本中.编辑tensorflow/contrib/cmake/external/protobuf.cmake指向当前HEAD的的protobuf回购.