无法安装Tensorflow Mac

问题描述 投票:8回答:1

我检查了我的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

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

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

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

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

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

(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

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

python macos tensorflow pip python-3.7
1个回答
12
投票

Update: version 1.13 introduces Python 3.7 support

最近发布的1.13版本候选版本支持Python 3.7,特别是预编译的CPU轮子也可用于MacOS 10.11和更新版本(link to 1.13.1)。像往常一样安装:

$ pip install tensorflow>=1.13

Original answer (outdated)

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

  • tensorflow使用async作为函数参数名称,asyncawait成为Python 3.7中的保留关键字(由this comment中的@phd指出) - 这就是你得到导入错误的原因;
  • Python 3.7在PyUnicode_AsUTF8AndSize使用的C API中更改了tensorflow函数的返回类型: 在版本3.7中更改:返回类型现在是const char *而不是char *

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

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

如果你愿意从源代码建立tensorflowThere is a patch proposed to fix both issues。如果您想尝试一下,请遵循官方文档中的Install TensorFlow from Sources教程,唯一的区别在于:

  1. 克隆存储库 $ git clone https://github.com/tensorflow/tensorflow
  2. 将补丁内容复制到文件,例如tf.patch
  3. 应用补丁: $ git apply tf.patch
  4. 继续本教程的其余部分。

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

© www.soinside.com 2019 - 2024. All rights reserved.