Ошибка импорта PySide на Ubuntu 13.04

при попытке импортировать

from PySide import QtGui

Я получаю следующую ошибку:

ImportError: libpyside-python2.7.so.1.2: невозможно открыть файл общих объектов: нет такого файла или каталога

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

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

Итак, файл на месте, почему PySide не может его найти? Я попытался установить PySide через pip, но получил некоторую ошибку после обработки script и установил пакет через синаптический интерфейс.

Дополнительная информация:

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)

Ответ 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 run ldconfig

  • скопировать или символизировать библиотеку в каталог, который уже проверен динамическим компоновщиком, например /usr/local/lib (и запустить ldconfig как пользователь root)

  • set LD_LIBRARY_PATH=/usr/local/lib/python2.7/dist-packages/PySide (не рекомендуется)

Ответ 2

Если вы использовали pyside-setup для сборки из исходного кода, просто запустите

sudo python pyside_postinstall.py -install