1

.soの参照を含むファイルがあります/Library/Frameworks/Python.framework/Versions/2.7/Python(.soファイル内にプレーンテキストでハードコードされたこのパスを確認できます)。ファイルを作成したソースにアクセスできません.so

別のバージョンのPythonライブラリ(に保存されている)を使用したいのですが/opt/local/Library.soこのパスを再割り当てするためにファイルを編集することは可能ですか?

4

1 に答える 1

3

install_name_toolOS X Xcode コマンド ライン ツールに含まれているものを使用して、参照を永続的に変更できる場合があります。

install_name_tool -change old-lib-path new-lib-path path-to.so

ただし、new-pathが元の よりも長い場合old-path、バンドル ファイル (.so) のフィールドにそうする余地がない可能性があります。注意事項のmanページ:install_name_tool

インストール名または rpath が大きい場合にこのツールを機能させるには、ld(1) -headerpad_max_install_names オプションを使用してバイナリをビルドする必要があります。

また、使用したい新しい Python が、変更しようとしている .so によって期待される古い共有ライブラリと互換性のある方法で構築されているという保証はありません。ユニバーサル CPU アーキテクチャ、OS X 展開ターゲット、および Python ビルド オプション (UCS-2 と UCS-4 など) には違いがあり、成功を妨げる可能性があります。変更を試みる前に、.so のコピーを作成する必要があります。

于 2012-11-09T23:44:55.397 に答える