我正在尝试在 MacOSX Yosemite 上安装 PyFTGL。
我使用的 python 版本是 macports 的 2.7。我已经从指定 +python27 的 macports 安装了 boost。
要安装 PyFTGL,我从源代码构建并从以下位置编辑 setup.py 文件:
module_ftgl_libs = [
'GLU',
'GL',
'freetype',
'z',
'ftgl',
'boost_python',
]
module_ftgl = Extension(
'FTGL',
module_ftgl_src,
include_dirs=module_ftgl_include_dirs,
libraries=module_ftgl_libs
)
至:
module_ftgl_libs = [
'freetype',
'z',
'ftgl',
'boost_python',
]
module_ftgl = Extension(
'FTGL',
module_ftgl_src,
include_dirs=module_ftgl_include_dirs,
libraries=module_ftgl_libs,
extra_link_args=['-framework', 'OpenGL', '-framework', 'GLUT']
)
然后我构建 setup.py 文件并将生成的 FTGL.so 文件复制到与使用 FTGL 函数的 python 代码 test.py 相同的文件夹中。
我的问题是当我现在运行我的代码时出现以下错误:
Traceback (most recent call last):
File "test.py", line 29, in <module>
import FTGL
ImportError: dlopen(/Users/james/Desktop/test/FTGL.so, 2): Symbol not found:__ZN5boost6python7objects15function_objectERKNS1_11py_functionERKNSt3__14pairIPNS0_6detail7keywordESA_EE
Referenced from: /Users/james/Desktop/test/FTGL.so
Expected in: flat namespace
in /Users/james/Desktop/test/FTGL.so
我对链接、setup.py 文件和 boost 了解不多,我花了很长时间研究 Google 和 Stack Overflow,但现在我无法找出问题所在。