8

是否有一种编程方式来找出哪些熊猫版本与特定的 python 和 numpy 配置兼容?

我的兴趣是让熊猫在 ESRI ArcMAP 10.1 中运行,它在 32 位 Windows 上运行并基于 python 2.7、numpy 1.6 构建。

我尝试通过打开 32 位 Anaconda 命令提示符并键入来为与 ESRI ArcMap 10.1 兼容的 Python 创建一个 conda 环境

conda create -n arcmap101 python=2.7 numpy=1.6 pandas

我得到了一个 Python 环境,其中包含pandas=0.10.1

然而,似乎应该可以使用 , 构建更高版本python=2.7numpy=1.6但我只是不确定要高多少。

我尝试在 github 上查看 pandas setup.py 的历史记录,虽然min_numpy_ver=1.6最近pandas=0.14要求已更改为min_numpy_ver=1.7,但我不知道这是一个新要求还是应该添加的错误修复在较早的版本级别。

我看到在 PyPI 上,pandas=0.11在 Windows 上是针对 . 构建的,numpy=1.6而对于. pandas=0.12numpy=1.7

但我不知道 PyPI 构建是要求还是选择。

有没有什么好方法可以在不问熊猫开发者的情况下找出这些东西?

4

1 回答 1

6

使用 conda 针对 numpy 构建的每个包都将 numpy 主要版本硬编码为依赖项。此版本也反映在构建字符串中(如np18py27)。这可能过于谨慎,因为许多包不使用 numpy API 的向后不兼容部分(特别是,并非所有包实际上都针对 numpy 编译 C 扩展),但无论如何,它就是这样做的。

当 1.8 发布时,Continuum 停止针对旧版本的 numpy 构建,这就是为什么当您告诉 conda 与 numpy 1.6 一起安装时,conda 会为您提供旧版本的 pandas。要查看那里有什么,请运行conda search pandas并记下构建字符串。

如果您需要一个不可用的 numpy/pandas 组合,您有两种选择:

  1. 手动安装“错误”的 pandas 并希望它能正常工作。numpy API 理论上是向后兼容的,所以这里有希望。不过,在这样做之后运行 pandas 测试以查看它是否真的有效可能是值得的。就像是

    conda create -n arcmap101 python=2.7 numpy=1.6 pandas

    conda install -n arcmap101 --no-deps pandas=0.13 # Or whatever version

    这将使您的环境处于 conda 认为不一致的状态,但软件包将安装在那里。您可以指定熊猫的确切版本,具体到构建字符串,例如pandas=0.13.0=np17py27_0

  2. 使用您想要的组合构建您自己的 pandas 包。conda skeleton pypi pandas将为您提供一个好的开始(至少根据我们在 Continuum 使用的配方,build.sh 中不需要任何特殊内容或所需的补丁)。然后用

    conda build --npy 1.6 --py 2.7 pandas

于 2014-08-13T18:49:42.477 回答