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
私は次の方法で実行/インストールしています:
ファイル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)
何か案は?前もって感謝します :)
OToolからの出力はライブラリへのフルパスを報告する必要があるため、インストーラーは多少壊れています(パスは、install_name_toolを使用してPysideインストーラーによって変更される必要があります)。
インストーラーのどの部分が壊れているかを理解するのではなく、次のように定義することをお勧めします。
DYLD_LIBRARY_PATH=/your/path/to/pyside/libraries
export DYLD_LIBRARY_PATH
これにより、実行可能ローダーは、リンカーによって構成されていない場合でも、指定したパスへのライブラリーをスキャンするように強制されます。
これを見ると、質問が修正されます: https://github.com/pyside/packaging/blob/master/setuptools/templates/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/
私は解決策を見つけました ここ
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
BrewがインストールしたQtと仮想環境を使用しているMavericksでも、同様の問題が発生しました。
私はbrew reinstall Qt
しなければなりませんでした
次に、pyside_postinstall.py -install
を実行します
ここを参照してください: https://github.com/Homebrew/homebrew/issues/27898