首页 > 解决方案 > 在具有指定 python 的 virtualenv 中 pip 无法找到 tensorflow

问题描述

我遇到了一个奇怪的问题,在 ubuntu 14.04 上,python2.7.9 安装在自定义文件夹中,当尝试从使用自定义 python 构建 pip 的 virtualenv 内部安装 tensorflow 时,似乎找不到 tensorflow。

 virtualenv venv --python=/opt/python279/bin/python2.7
 cd venv
 source bin/activate
 pip install tensorflow

收集张量流找不到满足要求张量流的版本(来自版本:)没有找到张量流的匹配分布

其他软件包安装正常:/我完全糊涂了

标签: pythontensorflowpipubuntu-14.04

解决方案


前段时间,我为可能导致错误的不匹配写了一个或多或少全面的清单。Could not find a version that satisfies requirement虽然这个问题专门针对 MacOS,但答案也适用于 Linux。在您的情况下,您的 ABI 不匹配:如评论中所述,

/opt/python279/bin/python2.7 -c "import sysconfig;\
    abiflags=('m' if sysconfig.get_config_var('WITH_PYMALLOC') else '')+\
    ('u' if sysconfig.get_config_var('WITH_WIDE_UNICODE') else '')+\
    ('d' if sysconfig.get_config_var('WITH_PYDEBUG') else ''); print(abiflags)" 

返回m,表明这个 Python 发行版是在没有广泛的 unicode 支持的情况下编译的(缺少u标志)。这意味着pip将只cp27-cp27m-manylinux1_x86_64为此 Python 发行版安装轮子。然而,在 Linux 上为 Python 2.7tensorflow提供cp27-cp27mu-manylinux1_x86_64的唯一轮子就是一个。为了能够安装tensorflow,您需要构建具有广泛 unicode 支持的 Python 2.7 发行版:

$ cd Python2.7-src
$ configure --enable-unicode=ucs4
$ make && make install

推荐阅读