导入使用Cython创建的.so文件会导致ImportError:... undefined symbol

时间:2017-01-26 16:48:48

标签: python docker cython

我已经对一大块代码进行了cython化,我知道这些代码可以在我常用的机器上运行。

但是,当我将其转移并在另一台机器上运行时,它无法正常工作。我的机器正在运行Ubuntu,另一台机器在Docker中运行Ubuntu。

错误是:

    from myFile import myFunction
ImportError: /myFile.so: undefined symbol: PyFPE_jbuf

Docker环境的设置与我本地计算机上的依赖项完全相同,所以我无法理解为什么会发生这种情况!

1 个答案:

答案 0 :(得分:1)

这个错误是由几个科学Python项目https://github.com/scikit-learn/scikit-learn/issues/7542 https://github.com/automl/auto-sklearn/issues/101引用的,显然与NumPy,Cython或不同C ++编译器的多个安装有关。

现在,您应该确保双方的环境都是干净的:~/.local中没有包,没有PYTHONPATH环境变量的设置,只有系统Python和系统编译器。然后,还提供完整的回溯而不是一个错误。