我正在运行Python 2.7.8 :: Anaconda 2.0.1(x86_64)和conda 3.5.5 在Mac OS 10.9.4(Maverick)上
我通过运行
安装了PyMC conda install -c https://conda.binstar.org/pymc pymc
然而,import pymc
给出了一个错误(我在最后复制了Traceback)。
Edit1 :通过阅读这个问题"cannot import name flib",在我看来问题是,通过安装带有anaconda的PyMC,它是针对不同的gfortran而不是{{{{{{ 1}}。我很乐意卸载并再试一次,但我希望有人能在我搞砸之前向我提供说明!
Edit2 :Traceback告诉我brew install gcc
正在尝试拨打//anaconda/lib/python2.7/site-packages/pymc/flib.so
,而/usr/local/Cellar/gfortran/4.8.2/gfortran/lib/libgfortran.3.dylib
并不存在。我想直到最近homebrew
已经在它上面安装了gfortran,因此在/usr/local/Cellar
中会有一个文件夹。但是,gfortran
现在由/usr/local/Cellar/gcc/4.8.3_1/bin
安装brew install gcc
。救命啊!
(除了:
由于错误表明我从brew
安装的gfortran编译器存在问题,请允许我提供一些有关详细信息,尽管可能不相关。
我通过调用
从brew安装gfortran
brew install gcc
它引发了一些错误并建议我链接gmp,mpfr,libmpc,isl和cloog。因此我做了
brew link gmp
(和mpfr等)
以防万一,which gfortran
给出了
/usr/local/bin/gfortran
以下是import pymc
的追溯:
In [1]: import pymc
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-1-5f262cfcb99b> in <module>()
----> 1 import pymc
//anaconda/lib/python2.7/site-packages/pymc/__init__.pyc in <module>()
28 from .PyMCObjects import *
29 from .InstantiationDecorators import *
---> 30 from .CommonDeterministics import *
31 from .NumpyDeterministics import *
32 from .distributions import *
//anaconda/lib/python2.7/site-packages/pymc/CommonDeterministics.py in <module>()
19 import inspect
20 import types
---> 21 from .utils import safe_len, stukel_logit, stukel_invlogit, logit, invlogit, value, find_element
22 from copy import copy
23 import sys
//anaconda/lib/python2.7/site-packages/pymc/utils.py in <module>()
12 from copy import copy
13 from .PyMCObjects import Variable
---> 14 from . import flib
15 import pdb
16 from numpy.linalg.linalg import LinAlgError
ImportError: dlopen(//anaconda/lib/python2.7/site-packages/pymc/flib.so, 2): Library not loaded: /usr/local/Cellar/gfortran/4.8.2/gfortran/lib/libgfortran.3.dylib
Referenced from: //anaconda/lib/python2.7/site-packages/pymc/flib.so
Reason: image not found
答案 0 :(得分:3)
这远不是一个完整的答案,但以下工作,至少使用从gfortran
安装的brew install gcc
编译器。它可能适用于不同的编译器,甚至根本没有,所以尝试以这种方式安装:
conda install -c https://conda.binstar.org/tobeplugged pymc
另外,检查PyMC开发人员Github页面in issue 556
中的更新答案 1 :(得分:1)
在尝试安装pymc以使用python的virtualenv部署时,我遇到了类似的问题。我用两个步骤解决了它。首先,我没有正确的gcc库。我用自制软件解决了这个问题:
brew install gfortran
接下来,我之前安装的pymc试图链接到位于此处的fortran版本:
/4.9.1/libgfortran.3.dyli
默认情况下自制软件将其放在此处:
/4.9/libgfortran.3.dyli
所以我通过循环我的pymc部署来解决这个问题:
.../bin/pip uninstall pymc
.../bin/pip install --upgrade pip
.../bin/pip install pymc
这个案例pip和pymc一起工作,找到你最近安装的fortran库。希望这会有所帮助。
答案 2 :(得分:1)
我迟到了,但这些是我作为OS X Sierra上的自制用户的步骤
主要的一点是,对于pymc构建它需要gfortran 4.2,由apple-gcc42包提供。它只是构建时的依赖项,因此您可以在pip安装完成后撤消这些更改。
brew install python3
brew install apple-gcc42
brew unlink gcc
ln -sf /usr/local/bin/gfortran-4.2 /usr/local/bin/gfortran
#optional: create virtualenv
python3 -mvenv ~/venvs/my_venv
source ~/venvs/my_venv/bin/activate
#end optional
pip3 install numpy
pip3 install pymc
# restore gcc
rm /usr/local/bin/gfortran
brew link gcc