在具有特定 python 的 virtualenv 中时,pip 找不到 tensorflow
pip canot find tensorflow when in virtualenv with specified python
我遇到了一个奇怪的问题,在 ubuntu 14.04 上 python2.7.9 安装在自定义文件夹中,当我尝试从使用自定义 python build pip 好像没有找到tensorflow
virtualenv venv --python=/opt/python279/bin/python2.7
cd venv
source bin/activate
pip install tensorflow
Collecting tensorflow
Could not find a version that satisfies the requirement tensorflow (from versions: )
No matching distribution found for tensorflow
其他包安装正常:/我完全糊涂了
前段时间写了可能不匹配导致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
将只为这个 Python 发行版安装 cp27-cp27m-manylinux1_x86_64
个轮子。但是,Linux 上 Python 2.7 的唯一车轮 tensorflow
offers 是 cp27-cp27mu-manylinux1_x86_64
。为了能够安装 tensorflow
,您需要构建一个具有广泛 unicode 支持的 Python 2.7 发行版:
$ cd Python2.7-src
$ configure --enable-unicode=ucs4
$ make && make install
我遇到了一个奇怪的问题,在 ubuntu 14.04 上 python2.7.9 安装在自定义文件夹中,当我尝试从使用自定义 python build pip 好像没有找到tensorflow
virtualenv venv --python=/opt/python279/bin/python2.7
cd venv
source bin/activate
pip install tensorflow
Collecting tensorflow Could not find a version that satisfies the requirement tensorflow (from versions: ) No matching distribution found for tensorflow
其他包安装正常:/我完全糊涂了
前段时间写了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
将只为这个 Python 发行版安装 cp27-cp27m-manylinux1_x86_64
个轮子。但是,Linux 上 Python 2.7 的唯一车轮 tensorflow
offers 是 cp27-cp27mu-manylinux1_x86_64
。为了能够安装 tensorflow
,您需要构建一个具有广泛 unicode 支持的 Python 2.7 发行版:
$ cd Python2.7-src
$ configure --enable-unicode=ucs4
$ make && make install