我已经安装了 pymc,现在我正在尝试将它导入我的代码中。然而,
首先,当我这样做时import pymc
,我收到了错误消息:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "//anaconda/lib/python2.7/site-packages/pymc-2.3.3-py2.7-macosx-10.9-x86_64.egg/pymc/__init__.py", line 30, in <module>
from .CommonDeterministics import *
File "//anaconda/lib/python2.7/site-packages/pymc-2.3.3-py2.7-macosx-10.9-x86_64.egg/pymc/CommonDeterministics.py", line 21, in <module>
from .utils import safe_len, stukel_logit, stukel_invlogit, logit, invlogit, value, find_element
File "//anaconda/lib/python2.7/site-packages/pymc-2.3.3-py2.7-macosx-10.9-x86_64.egg/pymc/utils.py", line 14, in <module>
from . import flib
ImportError: numpy.core.multiarray failed to import
可以通过手动修复import numpy.core.multiarray
,但是当我再次尝试时import pymc
,我收到了另一条错误消息:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "//anaconda/lib/python2.7/site-packages/pymc-2.3.3-py2.7-macosx-10.9-x86_64.egg/pymc/__init__.py", line 30, in <module>
from .CommonDeterministics import *
File "//anaconda/lib/python2.7/site-packages/pymc-2.3.3-py2.7-macosx-10.9-x86_64.egg/pymc/CommonDeterministics.py", line 13, in <module>
from . import PyMCObjects as pm
ImportError: cannot import name PyMCObjects
我四处搜索,类似问题的解决方案是:
- 如果这与安装有关
pymc
,请强制使用 32 位而不是 64 位。但是,此答案适用于 Windows 用户,并且我有 OS X 10.9 (Mavericks)。 - 在其他情况下,通常是由于循环依赖(例如,这里),我认为这里不是这种情况。
我的猜测是包装有问题flib
,但我不知道是什么。我将不胜感激有关此问题的任何答案/提示。提前致谢!
更新(2014 年 7 月 4 日)
谢谢,克里斯!我通过 dopymc
使用 conda build重建了我conda install -c https://conda.binstar.org/tobeplugged pymc
,现在当我这样做时import pymc
,会出现一条不同的错误消息:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "//anaconda/lib/python2.7/site-packages/pymc-2.3.3-py2.7-macosx-10.9-x86_64.egg/pymc/__init__.py", line 44, in <module>
from . import CommonDeterministics
ImportError: cannot import name CommonDeterministics
正如 Chris 所指出的(请参阅下面的评论),这里正在查看问题。问题似乎与gcc
(4.9版)的版本有关。我将在今天晚些时候尝试gcc
使用旧版本 (4.8.2) 重建我的版本,看看这是否能解决 OS X 10.9 (Mavericks) 的问题。否则,我相信人们也可以等待pymc团队解决这个问题。