Pandas版本兼容特定的python和numpy配置?

时间:2014-08-13 11:46:48

标签: python pandas anaconda conda

是否有一种编程方式可以找出哪些pandas版本与特定的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

然后我回到了一个包含pandas=0.10.1

的Python环境

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

我尝试查看history of the pandas setup.py on github并且min_numpy_ver=1.6一直到pandas=0.14,但最近要求已更改为min_numpy_ver=1.7,所以我不会知道这是一个新的要求还是应该在早期版本级别添加的错误修复。

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

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

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

1 个答案:

答案 0 :(得分:5)

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

当1.8发布时,Continuum停止构建旧版本的numpy,这就是为什么当你告诉它与numpy 1.6一起安装时,conda会给你一个旧版本的pandas。要查看其中的内容,请运行conda search pandas,并记下构建字符串。

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

  1. 手动安装"错误"熊猫,希望它有效。 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的确切版本,直到构建字符串,如pandas=0.13.0=np17py27_0

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

    构建它

    conda build --npy 1.6 --py 2.7 pandas