2013-08-21 12 views
11

während nur versuchtpyside Import Fehler auf Ubuntu 13.04

from PySide import QtGui 

Ich erhalte den folgenden Fehler zu importieren:

Import: libpyside-python2.7.so.1.2: kann Objekt nicht geteilt öffnen Datei: keine solche Datei oder das Verzeichnis

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 ist die so Datei ist vorhanden, warum pyside nicht finden können? Ich habe versucht, PySide via PIP zu installieren, habe aber eine Art Post-Processing-Script-Fehler bekommen und das Paket über synaptic installiert.

Zusätzliche Informationen:

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) 
+0

was bedeutet 'ldd /usr/local/lib/python2.7/dist-packages/PySide/libpyside-python2.7.so .1.2' sagen? – mata

+1

bitte können Sie beschreiben, wie Sie pyside installiert haben? Hast du pyside-setup benutzt, um pyside zu erstellen, wenn ja, hast du den Befehl "pyside_postistall -install" ausgeführt? Hast du die Installationsanweisungen hier https://pypi.python.org/pypi/PySide#building-pyside-on-a-unix-system-ubuntu-12-04-lts? – rlacko

+0

@mata Ich habe den Beitrag mit relevanten Informationen aktualisiert. – Moonwalker

Antwort

18

Der Ausgang des ldd legt nahe, dass libshiboken-python2.7.so.1.2 kann nicht gefunden werden.

/usr/local/lib/python2.7/dist-packages/PySide, wo es gefunden wird, ist in der Regel kein Verzeichnis, in dem der dynamische Linker danach suchen würde.

Es gibt mehrere Optionen in diesem Fall:

  • fügen Sie das Verzeichnis der von den dynamischen Linker geprüft Verzeichnisse.

    Um dies zu tun, können Sie eine Konfigurationsdatei erstellen, z. /etc/ld.so.conf.d/pyside.conf mit dem Inhalt:

    /usr/local/lib/python2.7/dist-packages/PySide 
    

    dann als root läuft ldconfig

  • Kopie oder die Bibliothek in ein Verzeichnis Symlink, die bereits vom dynamischen Linker aktiviert ist, wie /usr/local/lib (und ldconfig als root ausführen)

  • gesetzt LD_LIBRARY_PATH=/usr/local/lib/python2.7/dist-packages/PySide (nicht reccomended)

+0

Das hat funktioniert, vielen Dank! – Moonwalker

+0

Das Script pyside_postinstall aktualisiert RPATH in pyside-Bibliotheken, so dass die ldd zuerst in /usr/local/lib/python2.7/dist-packages/PySide dir nach abhängigen Bibliotheken sucht. Deshalb empfehle ich Ihnen, es an erster Stelle auszuführen, so dass Sie nicht manuell ldconfig ausführen müssen – rlacko

+0

@rlacko Ich habe versucht, genau zu tun, wie Sie vorgeschlagen, aber ohne Ergebnis ... – Moonwalker

1

Wenn Sie pyside-Setup verwendet haben, von der Quelle zu bauen, laufen nur

sudo python pyside_postinstall.py -install 
Verwandte Themen