python:pandas安装错误
我有一个适用于 MacOS 10.6.x
的 EPD 7.1
学术版,其中包含了 pandas 的 0.3
版本。最新的官方版本是 0.5.0
,所以我想升级到最新版本。
这是我所做的步骤:
- 从 这里 下载了源代码的
zip
文件。 - 执行了
sudo python setup.py install
来安装。 - 通过执行
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 个回答
问这个问题最好的地方是在邮件列表上(幸运的是,谷歌提醒我很快就知道了这个!)。看起来你的安装失败了,系统还是在用 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) 安装Wes在2011年11月25日发布的pandas 0.6.0版本。
2) 删除已经存在的scikits包,这个包是和EPD 7.1(版本0.2)一起打包的,然后使用命令'easy_install -U scikits.statsmodels'安装最新版本。
以上建议是Wes和pystatsmodel邮件列表上的朋友们提供的(感谢大家)。