问题描述
有没有一种编程方法可以找出哪些 pandas 版本与特定的Python和Numpy配置兼容?
我的兴趣是让 pandas 在ESRI ArcMAP 10.1中运行,它运行在32位Windows上,构建在Python2.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=2.7
、numpy=1.6
构建更高的版本,但我只是不确定有多高。
我尝试查看history of the pandas setup.py on github,min_numpy_ver=1.6
直到pandas=0.14
有一个min_numpy_ver=1.6
,尽管最近要求更改为min_numpy_ver=1.7
,因此我不知道这是新要求还是应该在较早版本级别添加的错误修复。
我看到在PyPI上,Windows上的pandas=0.11
是针对numpy=1.6
构建的,而pandas=0.12
是针对numpy=1.7
构建的。
但我不知道PyPI构建是必需的还是一种选择。
有没有什么好办法,不用直接问 pandas 开发人员就能搞清楚这些事情?
推荐答案
使用conda针对NumPy构建的每个包都将NumPy主版本硬编码为依赖项。该版本也反映在构建字符串中(如np18py27
)。这可能过于谨慎了,因为许多包并不使用Numpy API的向后不兼容部分(尤其是,并不是所有的包都真正针对Numpy编译C扩展),但无论如何,它都是这样做的。
Continuum在发布1.8时停止了针对较旧版本的NumPy的构建,这就是为什么当您告诉Conda与NumPy 1.6一起安装时,Conda会给您一个较旧版本的Pandas。要查看其中的内容,请运行conda search pandas
,并记下构建字符串。
如果您需要不可用的Numpy/Pandas组合,您有两个选择:
手动安装"错误"的 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 的确切版本,精确到构建字符串,如
pandas=0.13.0=np17py27_0
用您想要的组合构建您自己的 pandas 套餐。
构建它conda skeleton pypi pandas
将为您提供一个良好的开始(在构建.sh中不需要任何特殊的东西,或者不需要补丁,至少根据我们在Continuum这里使用的配方)。然后使用conda build --npy 1.6 --py 2.7 pandas
这篇关于 pandas 版本兼容特定的蟒蛇和NumPy配置吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!