Ошибка импорта PySide/Qt
Я пытаюсь импортировать PySide/Qt в Python так и получить следующую ошибку:
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
Я запускаю/устанавливаю через:
- Mac OSX 10.9.4 Mavericks
- Homebrew Python 2.7
- Homebrew установлен Qt
- Установлен пик PySide
Файл libpyside-python2.7.1.2.dylib находится по тому же пути, что и файл QtCore.so, указанный в сообщении об ошибке.
Все мои поиски этой конкретной проблемы дали людям, пытающимся упаковать эти библиотеки как часть приложения, чего я не делаю. Я просто пытаюсь запустить его в своей системе и все же имею эту проблему. Для устранения неполадок приложение предложило oTool; не уверен, что это полезно здесь, но это результат, когда я запускаю 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)
Любые идеи? Спасибо заранее:)
Ответы
Ответ 1
Ну, установщик несколько сломан, потому что вывод oTool должен сообщить полный путь к библиотеке (путь должен быть изменен установщиком Pyside с помощью install_name_tool).
Вместо того, чтобы сходить с ума, понять, какая часть установщика нарушена, я предлагаю вам определить:
DYLD_LIBRARY_PATH=/your/path/to/pyside/libraries
export DYLD_LIBRARY_PATH
Это заставит исполняемый загрузчик сканировать библиотеки в указанный вами путь, даже если он не настроен компоновщиком.
Ответ 2
Если вы посмотрите это, вы будете уверены, что будет исправлено:
https://github.com/PySide/pyside-setup/blob/master/pyside_postinstall.py
pyside_postinstall.py -install
Ответ 3
У меня была аналогичная проблема, и я решил ее вручную, используя otool -L
(как видно из вопроса) и install_name_tool
для обновления путей.
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
Мне пришлось сделать это для нескольких файлов в каталоге PySide до запуска script.
Это сообщение в блоге - хорошая ссылка: http://thecourtsofchaos.com/2013/09/16/how-to-copy-and-relink-binaries-on-osx/
Ответ 4
я нашел решение здесь
export DYLD_LIBRARY_PATH=/usr/local/lib/python[version]/site-packages/PySide
для python 3.5 это будет
export DYLD_LIBRARY_PATH=/usr/local/lib/python3.5/site-packages/PySide
Ответ 5
У меня была аналогичная проблема с Mavericks с помощью Brew -установленной Qt и виртуальной среды.
Мне пришлось brew reinstall Qt
Затем запустите pyside_postinstall.py -install
Смотрите здесь: https://github.com/Homebrew/homebrew/issues/27898