4

我在 Mac OS 10.9.4 (Maverick) 上运行 Python 2.7.8 :: Anaconda 2.0.1 (x86_64) 和 conda 3.5.5

我通过运行安装了 PyMC

conda install -c https://conda.binstar.org/pymc pymc

但是,import pymc给出了一个错误(我在最后复制了 Traceback)。

Edit1:通过阅读这个问题"cannot import name flib",在我看来,问题在于通过使用 anaconda 安装 PyMC,它是针对不同的 gfortran 构建的,而不是由brew install gcc. 我很乐意卸载并重试,但我希望在我把事情搞砸之前,有人会给我提供指导!

Edit2: Traceback 告诉我//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/binbrew install gcc. 帮助!


旁白:由于该错误表明我安装的 gfortran 编译器存在问题,因此brew让我为您提供一些详细信息,尽管可能不相关。

gfortran通过调用从 brew安装

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
4

3 回答 3

3

这远不是一个完整的答案,但以下工作,至少在gfortranbrew install gcc. 它可能与不同的编译器一起使用,甚至根本没有编译器,因此请尝试以这种方式安装它:

conda install -c https://conda.binstar.org/tobeplugged pymc

此外,请查看 PyMC 开发人员 Github 页面中的更新,第 556 期

于 2014-07-21T15:24:01.523 回答
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 库。希望这可以帮助。

于 2015-08-25T18:06:28.550 回答
1

我参加聚会迟到了,但这些步骤对我作为 OS X Sierra 上的自制用户有用

要点是,要构建 pymc,它需要 apple-gcc42 包提供的 gfortran 4.2。它只是构建时的依赖项,因此您可以在 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
于 2017-01-04T18:31:53.797 回答