Подтвердить что ты не робот

Ошибка импорта 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)

Любые идеи? Спасибо заранее:)

4b9b3361

Ответ 1

Ну, установщик несколько сломан, потому что вывод oTool должен сообщить полный путь к библиотеке (путь должен быть изменен установщиком Pyside с помощью install_name_tool).

Вместо того, чтобы сходить с ума, понять, какая часть установщика нарушена, я предлагаю вам определить:

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

Это заставит исполняемый загрузчик сканировать библиотеки в указанный вами путь, даже если он не настроен компоновщиком.

Ответ 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