当我在用 cython 编译的模块中使用任何import 语句时,我在导入模块时收到以下错误(请参阅下面的完整代码):
ImportError: /.../hw.cpython-35m-x86_64-linux-gnu.so: undefined symbol: __intel_sse2_strchr
Run Code Online (Sandbox Code Playgroud)
在我自己的机器上一切正常,但是当我尝试在外部高性能计算机上重新编译和运行我的脚本时出现此错误。
谷歌搜索我看到在几个地方弹出了类似的错误,但在这些讨论中,问题要么与自己的代码中的错误有关,而不是与导入的模块有关(例如,未定义符号错误导入 Cython 模块)或在构建 cython 或编译时间(例如cython 可以用 icc 编译吗?)。我不知道如何将这些应用于我的案例。
通过阅读其他讨论,我怀疑问题setup.py出在我的 . 我尝试将 numpy 添加到设置中(见setup2.py下文),但这并没有解决问题 - 我在import hw.
完整示例
硬件.pyx:
import numpy # without this line, the example works fine
cpdef testfun():
print("Hello world!")
Run Code Online (Sandbox Code Playgroud)
设置.py:
from distutils.core import setup
from Cython.Build import cythonize
setup(
ext_modules = cythonize('hw.pyx'),
)
Run Code Online (Sandbox Code Playgroud)
设置2.py:
from distutils.core import setup
from Cython.Build import cythonize
import numpy as …Run Code Online (Sandbox Code Playgroud)