在 OSX 下使用 SWIG 时出现致命 Python 错误
Fatal Python error when using SWIG under OSX
我在使用由 SWIG 生成的 Python 界面时遇到了问题(我有 OSX 10.11.12)。像这样编译和链接所有内容后:
swig -python erk_integrator.i
gcc -c -fPIC -O3 model.c auxiliary_functions.c timing_functions.c
gcc -c -fPIC -O3 erk_integrator.c erk_integrator_wrap.c -I. -I/usr/local/include/python2.7
gcc -lpython -dynamiclib model.o erk_integrator.o erk_integrator_wrap.o auxiliary_functions.o timing_functions.o -o _erk_integrator.so
我尝试了一个测试脚本,但是 Python 抛出了一个致命错误:
/usr/local/bin/python test_erk.py
Fatal Python error: PyThreadState_Get: no current thread
Abort trap: 6
但是当我 运行
/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 test_erk.py
一切正常。但是,我需要使用 /usr/local/bin/python(来自 Homebrew)而不是系统 Python。
我认为链接步骤出了点问题。非常感谢您的帮助!
这篇博客post帮我解决了:blog.tim-smith.us/2015/09/python-extension-modules-os-x
原来 OSX 你需要
-undefined dynamic_lookup
而不是
-lpython
我在使用由 SWIG 生成的 Python 界面时遇到了问题(我有 OSX 10.11.12)。像这样编译和链接所有内容后:
swig -python erk_integrator.i
gcc -c -fPIC -O3 model.c auxiliary_functions.c timing_functions.c
gcc -c -fPIC -O3 erk_integrator.c erk_integrator_wrap.c -I. -I/usr/local/include/python2.7
gcc -lpython -dynamiclib model.o erk_integrator.o erk_integrator_wrap.o auxiliary_functions.o timing_functions.o -o _erk_integrator.so
我尝试了一个测试脚本,但是 Python 抛出了一个致命错误:
/usr/local/bin/python test_erk.py
Fatal Python error: PyThreadState_Get: no current thread
Abort trap: 6
但是当我 运行
/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 test_erk.py
一切正常。但是,我需要使用 /usr/local/bin/python(来自 Homebrew)而不是系统 Python。
我认为链接步骤出了点问题。非常感谢您的帮助!
这篇博客post帮我解决了:blog.tim-smith.us/2015/09/python-extension-modules-os-x
原来 OSX 你需要
-undefined dynamic_lookup
而不是
-lpython