使用Cython制作的.so文件导入时出现ImportError: ...未定义的符号

4

我已经将一部分代码进行了Cython优化,我知道它在我的常用机器上能够正常工作。

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

错误信息如下:

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

Docker环境已设置为与我的本地机器完全相同的依赖项,因此我无法理解为什么会发生这种情况!

你的机器和Docker系统上使用的是相同版本的Ubuntu吗?Python版本也一样吗? - Pierre de Buyl
是的,使用16.04版本的Ubuntu操作系统,64位架构,并且Python版本为3.5.2。在同一份需求清单上使用pip install -r requirements.txt命令进行安装。 - tombird
1个回答

1

~/.local 目录下有一些 Python 2.7 的 scipy 包。但是在我删除它们之后,代码仍然可以在我的普通机器上运行。两台机器都没有设置 PYTHONPATH 作为环境变量。我使用虚拟环境来避免这些问题。 - tombird
@tombird,你有找到解决方案吗? - ImPurshu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接