python cuda编译出现undefined symbol: THPVariableClass

针对ImportError: /.local/lib/python3.6/site-packages/channelnorm_cuda-0.0.0-py3.6-linux-x86_64.egg/channelnorm_cuda.cpython-36m-x86_64-linux-gnu.so: undefined symbol: THPVariableClass

解决方案:保证导入的模块,import torch在最前边。顺序如下:
import torch
import your_extension
原因:import torch first, 这将解决 the dynamic linker中的some symbols。
它与setuptools没有任何关系,它只是一个动态链接问题。torch模块是一个共享(动态)库,它定义了扩展库中未解决的某些符号。为了使这些符号可用,必须在使用库(your_extension)之前导入包含符号(torch)的库,以便动态链接器可以将符号与来自torch库的符号相匹配。

你可能感兴趣的:(python cuda编译出现undefined symbol: THPVariableClass)