【问题标题】:Anaconda conda install pymc: Compilation failed on importAnaconda conda install pymc:导入时编译失败
【发布时间】:2017-06-13 21:16:59
【问题描述】:

我的目标是在 Mac OS 10.10.5 上安装 PyMC3 和 Python3。我的以下方法失败了:

  1. 我查看了 Theano 网站,发现 Python 3.6 尚不支持。
  2. 所以我选择了 Python 3.5,使用 https://repo.continuum.io/archive/Anaconda3-4.2.0-MacOSX-x86_64.pkg(遵循 docs.continuum.io/anaconda/faq.html#anaconda-faq-35)
  3. 在 Jupiter QtConsole 中我运行了!conda install -y -c conda-forge pymc3(在 pymc-devs.github.io/pymc3/ 修改推荐的命令)
  4. 安装成功完成
  5. import pymc3 失败,“找不到‘stdio.h’文件”
  6. 我跑了!xcode-select --install(根据stackoverflow.com/a/40301452的建议)
  7. import pymc3 再次失败,现在出现以下错误消息:

异常:编译失败(返回状态=1):ld:找不到符号 dyld_stub_binding_helper,通常在 crt1.o/dylib1.o/bundle1.o 中,用于架构 x86_64。 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)。

这是一条较长的错误信息:

  01066   #if defined(NPY_PY3K)
  01067   static struct PyModuleDef moduledef = {
  01068           PyModuleDef_HEAD_INIT,
  01069           "lazylinker_ext",
  01070           NULL,
  01071           -1,
  01072           lazylinker_ext_methods,
  01073           NULL,
  01074           NULL,
  01075           NULL,
  01076           NULL
  01077   };
  01078   #endif
  01079   #if defined(NPY_PY3K)
  01080   #define RETVAL m
  01081   PyMODINIT_FUNC
  01082   PyInit_lazylinker_ext(void) {
  01083   #else
  01084   #define RETVAL
  01085   PyMODINIT_FUNC
  01086   initlazylinker_ext(void) 
  01087   {
  01088   #endif
  01089       PyObject* m;
  01090   
  01091       lazylinker_ext_CLazyLinkerType.tp_new = PyType_GenericNew;
  01092       if (PyType_Ready(&lazylinker_ext_CLazyLinkerType) < 0)
  01093           return RETVAL;
  01094   #if defined(NPY_PY3K)
  01095       m = PyModule_Create(&moduledef);
  01096   #else
  01097       m = Py_InitModule3("lazylinker_ext", lazylinker_ext_methods,
  01098                          "Example module that creates an extension type.");
  01099   #endif
  01100       Py_INCREF(&lazylinker_ext_CLazyLinkerType);
  01101       PyModule_AddObject(m, "CLazyLinker", (PyObject *)&lazylinker_ext_CLazyLinkerType);
  01102   
  01103       return RETVAL;
  01104   }
  01105   
  Problem occurred during compilation with the command line below:
  /usr/bin/clang++ -dynamiclib -g -DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION -m64 -fPIC -undefined dynamic_lookup -I/Users/toy3/anaconda/lib/python3.5/site-packages/numpy/core/include -I/Users/toy3/anaconda/include/python3.5m -I/Users/toy3/anaconda/lib/python3.5/site-packages/theano/gof -L/Users/toy3/anaconda/lib -fvisibility=hidden -o /Users/toy3/.theano/compiledir_Darwin-14.5.0-x86_64-i386-64bit-i386-3.5.2-64/lazylinker_ext/lazylinker_ext.so /Users/toy3/.theano/compiledir_Darwin-14.5.0-x86_64-i386-64bit-i386-3.5.2-64/lazylinker_ext/mod.cpp
  ---------------------------------------------------------------------------
  ImportError                               Traceback (most recent call last)
  /Users/toy3/anaconda/lib/python3.5/site-packages/theano/gof/lazylinker_c.py in <module>()
       74         if version != getattr(lazylinker_ext, '_version', None):
  ---> 75             raise ImportError()
       76 except ImportError:

  ImportError: 

  During handling of the above exception, another exception occurred:

  ImportError                               Traceback (most recent call last)
  /Users/toy3/anaconda/lib/python3.5/site-packages/theano/gof/lazylinker_c.py in <module>()
       91             if version != getattr(lazylinker_ext, '_version', None):
  ---> 92                 raise ImportError()
       93         except ImportError:

  ImportError: 

  During handling of the above exception, another exception occurred:

  Exception                                 Traceback (most recent call last)
  <ipython-input-4-37bf2a3357ff> in <module>()
  ----> 1 import pymc3

  /Users/toy3/anaconda/lib/python3.5/site-packages/pymc3/__init__.py in <module>()
        2 
        3 from .blocking import *
  ----> 4 from .distributions import *
        5 from .math import logsumexp, logit, invlogit
        6 from .model import *

  /Users/toy3/anaconda/lib/python3.5/site-packages/pymc3/distributions/__init__.py in <module>()
  ----> 1 from . import timeseries
        2 from . import transforms
        3 
        4 from .continuous import Uniform
        5 from .continuous import Flat

  /Users/toy3/anaconda/lib/python3.5/site-packages/pymc3/distributions/timeseries.py in <module>()
  ----> 1 import theano.tensor as tt
        2 from theano import scan
        3 
        4 from .continuous import Normal, Flat
        5 from .distribution import Continuous

  /Users/toy3/anaconda/lib/python3.5/site-packages/theano/__init__.py in <module>()
       64     object2, utils)
       65 
  ---> 66 from theano.compile import (
       67     SymbolicInput, In,
       68     SymbolicOutput, Out,

  /Users/toy3/anaconda/lib/python3.5/site-packages/theano/compile/__init__.py in <module>()
        8         SpecifyShape, specify_shape, register_specify_shape_c_code)
        9 
  ---> 10 from theano.compile.function_module import *
       11 
       12 from theano.compile.mode import *

  /Users/toy3/anaconda/lib/python3.5/site-packages/theano/compile/function_module.py in <module>()
       19 from theano.compat import izip
       20 from theano.gof import graph
  ---> 21 import theano.compile.mode
       22 import theano.compile.profiling
       23 from theano.compile.io import (

  /Users/toy3/anaconda/lib/python3.5/site-packages/theano/compile/mode.py in <module>()
        8 import theano
        9 from theano import gof
  ---> 10 import theano.gof.vm
       11 from theano.configparser import config
       12 from theano.compile.ops import _output_guard

  /Users/toy3/anaconda/lib/python3.5/site-packages/theano/gof/vm.py in <module>()
      660     if not theano.config.cxx:
      661         raise theano.gof.cmodule.MissingGXX('lazylinker will not be imported if theano.config.cxx is not set.')
  --> 662     from . import lazylinker_c
      663 
      664     class CVM(lazylinker_c.CLazyLinker, VM):

  /Users/toy3/anaconda/lib/python3.5/site-packages/theano/gof/lazylinker_c.py in <module>()
      125             args = cmodule.GCC_compiler.compile_args()
      126             cmodule.GCC_compiler.compile_str(dirname, code, location=loc,
  --> 127                                              preargs=args)
      128             # Save version into the __init__.py file.
      129             init_py = os.path.join(loc, '__init__.py')

  /Users/toy3/anaconda/lib/python3.5/site-packages/theano/gof/cmodule.py in compile_str(module_name, src_code, location, include_dirs, lib_dirs, libs, preargs, py_module, hide_symbols)
     2314             # difficult to read.
     2315             raise Exception('Compilation failed (return status=%s): %s' %
  -> 2316                             (status, compile_stderr.replace('\n', '. ')))
     2317         elif config.cmodule.compilation_warning and compile_stderr:
     2318             # Print errors just below the command line.

  Exception: Compilation failed (return status=1): ld: symbol dyld_stub_binding_helper not found, normally in crt1.o/dylib1.o/bundle1.o for architecture x86_64. clang: error: linker command failed with exit code 1 (use -v to see invocation). 

如何继续安装 PyMC3?

【问题讨论】:

    标签: installation anaconda theano conda pymc3


    【解决方案1】:

    有点晚了,但希望这对其他人有所帮助。

    我刚刚遇到了与您相同的问题,并花了一个小时寻找解决方案。事实证明,在将 MacOS 更新到 High Sierra 后,我出现了这个问题;解决方法是重新安装 XCode 命令行工具。

    所以,对我来说完全有效的步骤(可能最好在终端而不是 Jupyter Qt 控制台中运行):

    1. xcode-select --install
    2. conda create -n pymc3 python=3.6
    3. source activate pymc3
    4. conda install -c conda-forge pymc3

    我很欣赏我的回答更多的是对其他回复的总结,但希望能增加更多背景信息。

    【讨论】:

      【解决方案2】:

      您可以使用conda-forge 频道在 Python 3.5 和 3.6 中安装 PyMC3 3.0 版。

      最好是创造一个新的环境:

      conda create -n py36 pyth0n=3.6
      

      激活它:

      source activate py36
      

      并将您的 pymc3 包安装到新环境中:

      (py36) conda install -c conda-forge pymc3
      

      【讨论】:

      • 你不是在建议我的第 3 步吗? (除了 -y 选项假设问题的答案是“是”。)
      • 我在 Python 3.6 conda 环境下的命令行上试了一下。导入工作无一例外。
      • 感谢您的努力(+1,当我获得更多声誉时应该会出现),但是这种方法会导致相同的错误消息。 import theano.gof.vmimport pymc3 期间仍然失败。
      • 好的。我在 Mac OS 10.11.6 上试过。也许是升级操作系统的好理由?
      猜你喜欢
      • 1970-01-01
      • 2019-01-02
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      • 2020-07-25
      • 1970-01-01
      • 1970-01-01
      • 2018-11-11
      相关资源
      最近更新 更多