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, en Mavericks usando un Qt instalado en Brew y un entorno virtual.
Tuve que brew reinstall Qt
A continuación, ejecute pyside_postinstall.py -install
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
si miras esto, tu pregunta será arreglada:
https://github.com/PySide/pyside-setup/blob/master/pyside_postinstall.py
pyside_postinstall.py -install