2017-07-19 14 views
0

ダウンロードしたPySideのコピーを元のインストール場所(/Library/PySide/2.7/site-packages/PySide)からネットワーク上の場所に移動したので、スクリプトがアクセスできますそれ。しかし、私は "ライブラリがロードされていません"というエラーが出始めました。私はテストのための私のデスクトップ上にコピーをした:OSX上でPySideにライブラリがロードされないエラー

Traceback (most recent call last): 
    File "test_pyside_imports.py", line 2, in <module> 
    import PySide.QtCore 
ImportError: dlopen(/Users/user/Desktop/PySide_OSX/PySide/QtCore.so, 2): Library not loaded: /Library/Python/2.7/site-packages/PySide/libpyside-python2.7.1.2.dylib 
    Referenced from: /Users/user/Desktop/PySide_OSX/PySide/QtCore.so 
    Reason: image not found 

私は前にこの問題全体を実行している、と私はちょうどたくさんinstall_name_tool走ったbashスクリプトでそれを固定することを確信しています:

#! /usr/bin/env bash 
install_name_tool -change @rpath/libpyside-python2.7.1.2.dylib ./PySide/libpyside-python2.7.1.2.dylib ./PySide/QtCore.so 
install_name_tool -change @rpath/libshiboken-python2.7.1.2.dylib ./PySide/libshiboken-python2.7.1.2.dylib ./PySide/QtCore.so 

しかし、何らかの理由でスクリプトが問題を解決していないようで、QtCore.soは元の場所にあるライブラリを探しています。私は、ファイルのアクセス許可をチェックし、スクリプト内のパスをダブルチェックしました。私が何を欠いているかについてのアイデアは?

ありがとうございました。

EDIT

近づい。

#! /usr/bin/env bash 
install_name_tool -change /Library/Python/2.7/site-packages/PySide/libpyside-python2.7.1.2.dylib ./PySide/libpyside-python2.7.1.2.dylib ./PySide/QtCore.so 
install_name_tool -change /Library/Python/2.7/site-packages/PySide/libshiboken-python2.7.1.2.dylib ./PySide/libshiboken-python2.7.1.2.dylib ./PySide/QtCore.so 

私はbashスクリプトとして上記を実行して、インポートをしようとすると、私は新しいエラーを取得する:

D25MG1AZF8J8:PySide_OSX spearsc$ python test_pyside_imports.py 
Traceback (most recent call last): 
    File "test_pyside_imports.py", line 2, in <module> 
    import PySide.QtCore 
ImportError: dlopen(/Users/spearsc/Desktop/PySide_OSX/PySide/QtCore.so, 2): Library not loaded: ./PySide/libpyside-python2.7.1.2.dylib 
    Referenced from: /Users/spearsc/Desktop/PySide_OSX/PySide/QtCore.so 
    Reason: unsafe use of relative rpath ./PySide/libpyside-python2.7.1.2.dylib in /Users/spearsc/Desktop/PySide_OSX/PySide/QtCore.so with restricted binary 

私は私の最初のbashスクリプトでの問題はその古いだと思いますパスは存在せず、無視されました。さて、もう一度やり直す必要がありますが、絶対パスを使用する必要があります。

答えて

0

これはトリックでした。私はbashスクリプトで絶対パスを使用する必要がありました。すべてのbashスクリプトは、古いパスを新しいパスに変更するために 'install_name_tool'を実行しました。

#! /usr/bin/env bash 
install_name_tool -change /Library/Python/2.7/site-packages/PySide/libpyside-python2.7.1.2.dylib /Users/spearsc/Desktop/PySide_OSX/PySide/libpyside-python2.7.1.2.dylib /Users/spearsc/Desktop/PySide_OSX/PySide/QtCore.so 
install_name_tool -change /Library/Python/2.7/site-packages/PySide/libshiboken-python2.7.1.2.dylib /Users/spearsc/Desktop/PySide_OSX/PySide/libshiboken-python2.7.1.2.dylib /Users/spearsc/Desktop/PySide_OSX/PySide/QtCore.so 
install_name_tool -change /Library/Python/2.7/site-packages/PySide/libpyside-python2.7.1.2.dylib /Users/spearsc/Desktop/PySide_OSX/PySide/libpyside-python2.7.1.2.dylib /Users/spearsc/Desktop/PySide_OSX/PySide/libshiboken-python2.7.1.2.dylib 
install_name_tool -change /Library/Python/2.7/site-packages/PySide/libshiboken-python2.7.1.2.dylib /Users/spearsc/Desktop/PySide_OSX/PySide/libshiboken-python2.7.1.2.dylib /Users/spearsc/Desktop/PySide_OSX/PySide/libshiboken-python2.7.1.2.dylib 
install_name_tool -change /Library/Python/2.7/site-packages/PySide/libpyside-python2.7.1.2.dylib /Users/spearsc/Desktop/PySide_OSX/PySide/libpyside-python2.7.1.2.dylib /Users/spearsc/Desktop/PySide_OSX/PySide/libpyside-python2.7.1.2.dylib 
install_name_tool -change /Library/Python/2.7/site-packages/PySide/libshiboken-python2.7.1.2.dylib /Users/spearsc/Desktop/PySide_OSX/PySide/libshiboken-python2.7.1.2.dylib /Users/spearsc/Desktop/PySide_OSX/PySide/libpyside-python2.7.1.2.dylib 

だけのコードスニペットは、ちょうどQtCore.soのパス、libshiboken-python2.7.1.2.dylib、およびlibpyside-python2.7.1.2.dylibを変更することを覚えておいてください。 PySideフォルダ内のすべての.soファイルに対して 'install_name_tool'を実行する必要があります。結局、私のbashスクリプトは約37〜38行でした。

関連する問題