Ubuntu 13.04上的PySide导入错误

Moo*_*ker 11 python ubuntu qt pyqt pyside

在尝试导入时

from PySide import QtGui
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ImportError:libpyside-python2.7.so.1.2:无法打开共享对象文件:没有这样的文件或目录

ls /usr/local/lib/python2.7/dist-packages/PySide/libpyside-python2.7.so.1.2

/usr/local/lib/python2.7/dist-packages/PySide/libpyside-python2.7.so.1.2

所以so文件到位了,为什么PySide找不到它?我试图通过pip安装PySide但是遇到了某种后处理脚本错误并通过synaptic安装了包.

附加信息:

ldd /usr/local/lib/python2.7/dist-packages/PySide/libpyside-python2.7.so.1.2
        linux-vdso.so.1 =>  (0x00007ffffd34e000)
        libpython2.7.so.1.0 => /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0 (0x00007fdd5a6ae000)
        libshiboken-python2.7.so.1.2 => not found
        libQtCore.so.4 => /usr/lib/x86_64-linux-gnu/libQtCore.so.4 (0x00007fdd5a1d6000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fdd59ed3000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fdd59cbd000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fdd598f4000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fdd596dd000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fdd594c0000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fdd592bb000)
        libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007fdd590b8000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fdd58db3000)
        libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fdd58ab6000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fdd588ae000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fdd5ae32000)
        libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fdd5866e000)
Run Code Online (Sandbox Code Playgroud)

mat*_*ata 18

输出ldd显示,libshiboken-python2.7.so.1.2无法找到.

/usr/local/lib/python2.7/dist-packages/PySide在找到它的地方,通常不是动态链接器寻找它的目录.

在这种情况下有几种选择:

  • 将目录添加到动态链接器检查的目录中.

    为此,您可以创建配置文件,例如/etc/ld.so.conf.d/pyside.conf使用以下内容:

    /usr/local/lib/python2.7/dist-packages/PySide
    
    Run Code Online (Sandbox Code Playgroud)

    然后作为root运行 ldconfig

  • 将库复制或符号链接到已由动态链接器检查的目录,例如/usr/local/lib(并ldconfig以root身份运行)

  • 设置LD_LIBRARY_PATH=/usr/local/lib/python2.7/dist-packages/PySide(不推荐)