【发布时间】:2018-01-16 21:08:12
【问题描述】:
我只在 Mac 上使用 anaconda3 和 swig 时遇到此错误。有人对如何解决这个问题有任何建议吗?
这是test.i 文件。
# test.i
%module test
%{
int hello();
%}
这是test.c 文件。
//test.c
#include <stdio.h>
int hello() {
printf("Hello\n");
return 0;
}
这是创建扩展的编译步骤。
$ swig -python test.i
$ cc -c $(python3-config --cflags) test.c test_wrap.c
$ cc -bundle -L/Users/$USER/miniconda3/lib/python3.6/config-3.6m-darwin -lpython3.6m -ldl test.o test_wrap.o -o _test.so
$ python test.py
Fatal Python error: PyThreadState_Get: no current thread
[1] 97445 abort python test.py
同样,任何其他操作系统都没有错误。他们相应的步骤起作用。它适用于 Homebrew Python2,也适用于 Homebrew Python3。它也适用于 Anaconda2。但它不适用于 Anaconda3 或 Anaconda3 环境。
请参阅下面的最小工作示例。
【问题讨论】: