2

我在 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**
4

2 回答 2

5

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

其工作原理是项目的维护者在每个受支持的平台(例如 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

如您所见,numpy2.5 秒内安装完毕!!!如果您曾经从源代码安装过它,那真是太疯狂了!

无论如何,回到你的问题。所以你得到的原因... is not a supported wheel on this platform是因为你正在安装的包没有在你安装它的同一平台上编译,因此你不能从轮子安装,需要从源代码安装,这将在安装时编译代码。

只要您有一个最近的点子,您就应该能够简单地执行以下操作:

pip install Fiona==1.6.0

如果可以,它将使用轮子,如果轮子不能使用,则从源安装。

于 2015-07-25T14:51:04.800 回答
0

为什么要打扰车轮包。您说您拥有 Python 的 Anaconda 发行版,快速查看包含的软件包表明 Fiona 已经存在。您可以简单地:

conda install fiona

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

编辑:我从您上面的评论中看到,这与 GeoPandas 的兼容性问题有关。虽然不是 Anaconda 的一部分,但快速搜索显示anaconda.org 上的许多贡献包,包括来自IOOS贡献的这个包

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

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

于 2015-07-25T16:00:50.353 回答