导入PySide时出现未定义的符号错误

时间:2014-11-18 22:14:13

标签: python-2.7 pyside centos6 undefined-symbol

我试图在CentOS 6上创建一个包含PySide的Python 2.7安装。我根据these指令编译了一个wheel包,并且没有错误地安装它。

但是,当我尝试运行postinstall脚本时出现此错误:

/opt/python/lib/python2.7/site-packages/PySide/libpyside-python2.7.so.1.1: undefined symbol: _ZN9QMetaType15registerTypedefEPKci

我从PySide导入QtCore""得到了同样的错误。在IPython中。

这些是我用来构建和安装的命令:

/opt/python/bin/python setup.py bdist_wheel --qmake=/opt/python/lib/qt4/bin/qmake
cp dist/PySide-1.2.2-cp27-none-linux-x86_64.whl /opt/python/src
cd /opt/python
bin/pip ../src/PySide-1.2.2-cp27-none-linux-x86_64.whl
bin/python bin/pyside_postinstall.py -install

更新:我能够通过将LD_LIBRARY_PATH设置为包含/ opt / python / lib / qt4来解决此问题。我假设这会通过在编译时设置qmake路径而内置到PySide中。

有没有办法做到这一点,没有设置LD_LIBRARY_PATH?

1 个答案:

答案 0 :(得分:0)

将Qt configure命令更改为:

./configure -debug -rpath -prefix '/opt/python/lib/qt4' | tee config.log

使用-rpath使得使用自定义qmake构建的所有内容都将Qt库路径硬编码到其中。