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

Есть идеи? Заранее спасибо 🙂

  • Щелкните контекстное меню clickMenu на QPushButton
  • Есть ли лучший язык компоновки, чем HTML для печати?
  • PyQt и QSignalMapper / lambdas - несколько сигналов, один слот
  • Вернуть объект в роли в Python и получить ссылку на другой объект в QML
  • Событие QKeyPress в PyQt
  • Как достичь согласованного выделения элементов QListWidget в состояниях виджетов?
  • Сигналы и слоты PyQt4
  • Как проверить, нажат ли ключ-модификатор (shift, ctrl, alt)?
  • 5 Solutions collect form web for “Ошибка импорта PySide / Qt”

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

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

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

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

    если вы посмотрите это, вы будете заданы вопросом:

    https://github.com/PySide/pyside-setup/blob/master/pyside_postinstall.py

    pyside_postinstall.py -install

    У меня была аналогичная проблема, и я разрешил ее вручную, используя 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 до запуска скрипта.

    Это сообщение в блоге – хорошая ссылка: http://thecourtsofchaos.com/2013/09/16/how-to-copy-and-relink-binaries-on-osx/

    У меня была аналогичная проблема, на Mavericks с использованием Brew-установленной Qt и виртуальной среды.

    Мне пришлось brew reinstall Qt

    Затем запустите pyside_postinstall.py -install

    См. Здесь: https://github.com/Homebrew/homebrew/issues/27898

    я нашел решение здесь

     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 
    Python - лучший язык программирования в мире.