import cell
)收到以下消息:ImportError: dynamic module does not define module export function (PyInit_cell)
我检查了系统是否在所有情况下都使用Python3,因此这不是Python版本问题。
以下是我的设置.py文件:
下面是生成的.so文件的转储:
0000000000201020 B __bss_start
0000000000201020 b completed.7594
w __cxa_finalize@@GLIBC_2.2.5
0000000000000530 t deregister_tm_clones
00000000000005c0 t __do_global_dtors_aux
0000000000200de8 t __do_global_dtors_aux_fini_array_entry
0000000000201018 d __dso_handle
0000000000200df8 d _DYNAMIC
0000000000201020 D _edata
0000000000201028 B _end
0000000000000630 T _fini
0000000000000600 t frame_dummy
0000000000200de0 t __frame_dummy_init_array_entry
0000000000000640 r __FRAME_END__
0000000000201000 d _GLOBAL_OFFSET_TABLE_
w __gmon_start__
00000000000004e8 T _init
w _ITM_deregisterTMCloneTable
w _ITM_registerTMCloneTable
0000000000200df0 d __JCR_END__
0000000000200df0 d __JCR_LIST__
w _Jv_RegisterClasses
0000000000000570 t register_tm_clones
0000000000201020 d __TMC_END__
我真的不明白为什么模块没有加载到python中,因为在构建过程中没有出现错误。在
任何帮助都将不胜感激!在
您不应该调用您的扩展/模块
cell.pyx
,而是以不同的方式调用它—例如cycell.pyx
。在为什么?在构建扩展时,将执行以下步骤
cell.pyx
生成文件cell.cpp
。在cell.cpp
编译为目标文件cell.o
。在cell.cc
编译为目标文件cell.o
,并覆盖从cell.pyx
创建的目标文件。在cell.o
文件(但实际上只有一个)cell.pyx
/cell.cpp
中定义的内容不存在。在通过重命名Cython文件,可以避免对象文件被覆盖。在
显然,另一个选择是重命名c++文件。在
相关问题 更多 >
编程相关推荐