2013-08-21 3 views
11

durante il tentativo di importare soloPySide Importa su Ubuntu 13.04

from PySide import QtGui 

sto ottenendo il seguente errore:

ImportError: oggetto non può aprire comune: libpyside-python2.7.so.1.2 di 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

così il modo di file è a posto, perché PySide non riesce a trovarlo? Ho provato a installare PySide tramite pip, ma ho ottenuto una sorta di errore di script di post-elaborazione e pacchetto installato tramite synaptic.

Ulteriori informazioni:

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

cosa significa 'ldd /usr/local/lib/python2.7/dist-packages/PySide/libpyside-python2.7.so .1.2' dire? – mata

+1

per favore, puoi descrivere come hai installato pyside? hai usato pyside-setup per costruire pyside se sì, hai eseguito il comando "pyside_postistall -install"? hai seguito le istruzioni di installazione qui https://pypi.python.org/pypi/PySide#building-pyside-on-a-unix-system-ubuntu-12-04-lts? – rlacko

+0

@mata Ho aggiornato il post con le informazioni pertinenti. – Moonwalker

risposta

18

L'uscita del ldd suggerisce che libshiboken-python2.7.so.1.2 non può essere trovato.

/usr/local/lib/python2.7/dist-packages/PySide, dove viene trovato, non è in genere una directory in cui il linker dinamico dovrebbe cercarlo.

ci sono diverse opzioni in questo caso:

  • aggiungere la directory alle directory controllato da linker dinamico.

    Per fare ciò, è possibile creare un file di configurazione, ad es. /etc/ld.so.conf.d/pyside.conf con il contenuto:

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

    allora come root ldconfig

  • copia o link simbolico la libreria in una directory che è già controllato dal linker dinamico, come /usr/local/lib (ed eseguire ldconfig come root)

  • set LD_LIBRARY_PATH=/usr/local/lib/python2.7/dist-packages/PySide (non consigliato)

+0

Questo ha funzionato, grazie mille! – Moonwalker

+0

lo script pyside_postinstall aggiorna il RPATH in lib di panning in modo che il ldd prima guardi in /usr/local/lib/python2.7/dist-packages/PySide dir per libs dipendenti. questo è il motivo per cui ti ho consigliato di eseguirlo al primo posto in modo da non dover eseguire manualmente ldconfig – rlacko

+0

@rlacko Ho provato a fare esattamente come hai suggerito ma senza risultato ... – Moonwalker

1

Se avete usato PySide-setup per costruire dai sorgenti, basta eseguire

sudo python pyside_postinstall.py -install