安装python wheel文件,'* .whl'会导致“...这个平台上没有支持的轮子”

时间:2015-07-25 14:32:29

标签: python macos python-wheel

我在Mac OSX 10.9.5上使用Python 2.7.10运行Anaconda。我正在尝试安装名为“Fiona”的软件包。

我输入了

sudo pip install Fiona-1.6.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.ma‌​cosx_10_10_intel.macosx_10_10_x86_64.whl 

结果

The directory '/Users/ronaldbjork/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. Fiona-1.6.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.mac‌​osx_10_10_intel.macosx_10_10_x86_64.whl **is not a supported wheel on this platform.**

建议-H使用:

所以我输入了

sudo -H pip install Fiona-1.6.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.ma‌​cosx_10_10_intel.macosx_10_10_x86_64.whl 

结果

Fiona-1.6.0-cp27-none-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.mac‌​osx_10_10_intel.macosx_10_10_x86_64.whl **is not a supported wheel on this platform**

2 个答案:

答案 0 :(得分:4)

Python wheel是一种分发二进制包的方法。

如何工作是项目的维护者在每个支持的平台(例如Windows,Mac,linux等)上编译项目(通常使用C扩展等),然后直接将包与编译​​的二进制文件一起发送代码。

优点是安装包时,只要轮子在同一平台上编译,所有安装需要做的只是解压tar文件和whala,安装包。很酷。这对具有大量C代码的相当大的包具有显着影响,例如numpy

(test) ❯❯❯ time pip install numpy
Collecting numpy
  Using cached numpy-1.9.2-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Installing collected packages: numpy
Successfully installed numpy-1.9.2
        2.50 real         1.37 user         0.38 sys

如您所见,numpy在2.5秒内安装!!!如果您曾经从源代码安装它,这非常疯狂且非常棒!

无论如何,回到你的问题。因此,您获得... is not a supported wheel on this platform的原因是因为您安装的软件包未在安装它的同一平台上编译,因此您无法从wheel安装并需要从源代码安装,这将在安装时编译代码时间。

只要你有一个非常新的点,你应该能够做到:

pip install Fiona==1.6.0

然后如果可以的话将使用轮子,或者如果轮子不能使用则从源安装。

答案 1 :(得分:0)

为什么要打扰轮包。你说你有蟒蛇的Anaconda发行版,并快速浏览一下Fiona已经存在的included packages节目。你可以简单地说:

conda install fiona

这允许conda安装程序管理所有二进制依赖项。也使升级更容易。您还可以使用conda search fiona查看已经提供的更完整的版本列表,或查看anaconda.org(以前称为binstar.org)上提供的软件包。

编辑:我在上面的评论中看到,这与GeoPandas的兼容性问题有关。虽然不是Anaconda的一部分,但快速搜索会显示packages on anaconda.org贡献的this one,其中包括来自IOOS贡献的{{3}}

conda install -c https://conda.anaconda.org/ioos geopandas

底线:一旦你安装了Anaconda,我就说在尝试pip之前总是尝试conda install并先搜索anaconda.org。