python:pandas安装错误

1 投票
2 回答
2513 浏览
提问于 2025-04-17 07:04

我有一个适用于 MacOS 10.6.xEPD 7.1 学术版,其中包含了 pandas 的 0.3 版本。最新的官方版本是 0.5.0,所以我想升级到最新版本。

这是我所做的步骤:

  1. 这里 下载了源代码的 zip 文件。
  2. 执行了 sudo python setup.py install 来安装。
  3. 通过执行 nosetests pandas 来运行测试。

请记住,我对 Python 完全是个新手。任何关于我安装失败的原因的见解都将非常感激。下面是一些错误的片段。完整的日志可以在 错误日志 中找到。

结果:

运行了 1498 个测试,耗时 55.011 秒 失败了(跳过=4,错误=91,失败=14)

======================================================================
ERROR: test_generate (test_daterange.TestGeneration)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/pandas/core/tests/test_daterange.py", line 20, in test_generate
    rng2 = list(generate_range(START, END, timeRule='WEEKDAY'))
TypeError: generate_range() got an unexpected keyword argument 'timeRule'

@wesm - 谢谢你快速的回复。下次我一定会使用邮件列表。所以我实际上回退了一下... 安装了官方的 0.5.0 版本并从源代码编译。我收到了 3 个错误(见下文)。我在运行 sudo python setup.py install 时没有遇到任何问题。

======================================================================
ERROR: testForSeries (pandas.stats.tests.test_ols.TestPanelOLS)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/pandas/stats/tests/test_ols.py", line 472, in testForSeries
    self.series_x, self.series_y)
  File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/pandas/stats/tests/test_ols.py", line 565, in checkForSeries
    reference = ols(y=series_y, x=series_x, **kwds)
  File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/pandas/stats/interface.py", line 133, in ols
    return klass(**kwargs)
  File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/pandas/stats/ols.py", line 36, in __init__
    import scikits.statsmodels.api as sm
ImportError: No module named api

======================================================================
ERROR: testNonPooled (pandas.stats.tests.test_ols.TestPanelOLS)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/pandas/stats/tests/test_ols.py", line 522, in testNonPooled
    self.checkNonPooled(y=self.panel_y, x=self.panel_x)
  File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/pandas/stats/tests/test_ols.py", line 528, in checkNonPooled
    result = ols(y=y, x=x, pool=False, **kwds)
  File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/pandas/stats/interface.py", line 133, in ols
    return klass(**kwargs)
  File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/pandas/stats/plm.py", line 780, in __init__
    nw_overlap=nw_overlap)
  File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/pandas/stats/interface.py", line 133, in ols
    return klass(**kwargs)
  File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/pandas/stats/ols.py", line 36, in __init__
    import scikits.statsmodels.api as sm
ImportError: No module named api

======================================================================
ERROR: test_auto_rolling_window_type (pandas.stats.tests.test_ols.TestPanelOLS)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/pandas/stats/tests/test_ols.py", line 604, in test_auto_rolling_window_type
    window_model = ols(y=y, x=data, window=20, min_periods=10)
  File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/pandas/stats/interface.py", line 133, in ols
    return klass(**kwargs)
  File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/pandas/stats/ols.py", line 521, in __init__
    OLS.__init__(self, y=y, x=x, **self._args)
  File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/pandas/stats/ols.py", line 36, in __init__
    import scikits.statsmodels.api as sm
ImportError: No module named api

2 个回答

1

问这个问题最好的地方是在邮件列表上(幸运的是,谷歌提醒我很快就知道了这个!)。看起来你的安装失败了,系统还是在用 pandas 0.3.0。你在运行 python setup.py install 的时候有没有出现错误?如果你是从 git 快照构建的,可能需要升级你的 Cython 安装(可以用 sudo easy_install -U Cython 来升级)。如果这样还不行,可以试着删除你现有的 pandas 安装:

sudo rm -rf /Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/site-packages/pandas

然后重新安装。PyPI 上的压缩包包含了预先构建的 Cython 源代码。如果你还是要从源代码构建,我建议你直接从 git 的最新版本构建。我距离发布 pandas 0.6.0 只差几天了。

1

这个问题是通过以下方式解决的:

1) 安装Wes在2011年11月25日发布的pandas 0.6.0版本。

2) 删除已经存在的scikits包,这个包是和EPD 7.1(版本0.2)一起打包的,然后使用命令'easy_install -U scikits.statsmodels'安装最新版本。

以上建议是Wes和pystatsmodel邮件列表上的朋友们提供的(感谢大家)。

撰写回答