【问题标题】:PySide Import Error on Ubuntu 13.04Ubuntu 13.04 上的 PySide 导入错误
【发布时间】:2013-08-24 12:55:39
【问题描述】:

尝试导入时

from PySide import QtGui

我收到以下错误:

ImportError: libpyside-python2.7.so.1.2: cannot open shared object file: No such file or directory

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)

【问题讨论】:

  • ldd /usr/local/lib/python2.7/dist-packages/PySide/libpyside-python2.7.so.1.2 说什么?
  • 请您描述一下您是如何安装 pyside 的?如果是,您是否使用 pyside-setup 构建 pyside,您是否运行了“pyside_postistall -install”命令?您是否按照pypi.python.org/pypi/… 此处的安装说明进行操作?
  • @mata 我已经用相关信息更新了帖子。
  • @rlacko 我遇到了 pip 问题,并使用 synaptic 从存储库安装了软件包。
  • @rlacko 然后我尝试按照 python2.7 setup.py bdist_egg --version=1.2.1 上的说明 #error “如果 Qt 是,您必须使用与位置无关的代码构建您的代码使用 -reduce-relocations 构建。" "使用 -fPIC 或 -fPIE 编译代码。"

标签: python qt ubuntu pyqt pyside


【解决方案1】:

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
    

    然后以root身份运行ldconfig

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

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

【讨论】:

  • pyside_postinstall 脚本会更新 pyside 库中的 RPATH,因此 ldd 首先会在 /usr/local/lib/python2.7/dist-packages/PySide 目录中查找依赖库。这就是为什么我建议您首先运行它,这样您就不必手动运行 ldconfig
  • 你能把你做了什么发给我,以便我修复错误和更新文档吗?理想的是控制台的构建输出。谢谢
【解决方案2】:

如果您使用 pyside-setup 从源代码构建,只需运行

sudo python pyside_postinstall.py -install

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-28
    • 2017-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    • 2012-12-24
    相关资源
    最近更新 更多