python macos qt pyside

python - Error de importación PySide/Qt



macos (5)

Estoy tratando de importar PySide / Qt a Python como tal y obtener el siguiente error:

from PySide import QtCore ImportError: dlopen(/usr/local/lib/python2.7/site-packages/PySide/QtCore.so, 2): Library not loaded: libpyside-python2.7.1.2.dylib Referenced from: /usr/local/lib/python2.7/site-packages/PySide/QtCore.so Reason: image not found

Estoy corriendo / instalado a través de:

  • Mac OSX 10.9.4 Mavericks
  • Homebrew Python 2.7
  • Homebrew instalado Qt
  • Pip instaló PySide

El archivo libpyside-python2.7.1.2.dylib se encuentra en la misma ruta que el archivo QtCore.so que figura en el mensaje de error.

Todas mis búsquedas de este problema en particular han producido personas que intentan empaquetar estas bibliotecas como parte de una aplicación, lo que no estoy haciendo. Solo estoy intentando ejecutarlo en mi sistema y aún tengo este problema. Para solucionar problemas en una aplicación, las personas sugirieron oTool; no estoy seguro de si es útil aquí, pero este es el resultado cuando ejecuto oTool:

otool -L QtCore.so QtCore.so: libpyside-python2.7.1.2.dylib (compatibility version 1.2.0, current version 1.2.2) libshiboken-python2.7.1.2.dylib (compatibility version 1.2.0, current version 1.2.2) /usr/local/lib/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.6) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

¿Algunas ideas? Gracias por adelantado :)


Bueno, el instalador está algo roto, porque la salida de oTool debe informar una ruta completa a la biblioteca (la ruta debe ser cambiada por el instalador de Pyside usando install_name_tool).

En lugar de enloquecer entendiendo qué parte del instalador está rota, sugiero que definas:

DYLD_LIBRARY_PATH=/your/path/to/pyside/libraries export DYLD_LIBRARY_PATH

Esto obligará al cargador ejecutable a buscar bibliotecas en la ruta que proporcionas también, incluso si no está configurada por el vinculador.



Tuve un problema similar, y lo resolví manualmente usando otool -L (como se ve en la pregunta) y install_name_tool para actualizar las rutas.

install_name_tool -change @rpath/libshiboken.cpython-34m.1.2.dylib /usr/local/lib/python3.4/site-packages/PySide/libshiboken.cpython-34m.1.2.dylib /usr/local/lib/python3.4/site-packages/PySide/QtCore.so install_name_tool -change @rpath/libpyside.cpython-34m.1.2.dylib /usr/local/lib/python3.4/site-packages/PySide/libpyside.cpython-34m.1.2.dylib /usr/local/lib/python3.4/site-packages/PySide/QtCore.so

Tuve que hacer esto para varios archivos en el directorio PySide antes de que se ejecutara el script.

Esta publicación de blog es una buena referencia: http://thecourtsofchaos.com/2013/09/16/how-to-copy-and-relink-binaries-on-osx/


encontré una solución here

export DYLD_LIBRARY_PATH=/usr/local/lib/python[version]/site-packages/PySide

para Python 3.5 esto sería

export DYLD_LIBRARY_PATH=/usr/local/lib/python3.5/site-packages/PySide