OSX El Capitan 10.11.5のIDL 8.5.1で新しいIDL-Pythonブリッジを利用しようとしています。私はWindows上でこの機能を使用しました。これは、起動してから美しく機能しますが、OSXでは機能しません。IDL-PythonブリッジがOSX El Capitan上のSIPのために失敗する
私はテストするためにAnaconda Python 3.4.1 64bitをインストールしました。
hereのように環境を設定したら、DYLD_LIBRARY_PATH
環境変数を設定します。
私はPythonからIDLを呼び出すことができますが、それ以外の方法はありません。彼らの技術サポートの作業が終了した後
IDL> ran = Python.Import('numpy.random')
% DLM_LOAD: Error loading sharable executable.
Symbol: IDL_Load, File = /Applications/exelis/idl85/bin/bin.darwin.x86_64/idl_python34.so
dlopen(/Applications/exelis/idl85/bin/bin.darwin.x86_64/idl_python34.so, 1): Library not loaded: libpython3.4m.dylib
Referenced from: /Applications/exelis/idl85/bin/bin.darwin.x86_64/idl_python34.so
Reason: image not found
% Execution halted at: $MAIN$
を(と私は、彼らは非常に有用と彼らの助けとなっていると言っている:私は(例hereから)次のコマンドを実行した場合、次のエラーが観察されます高品質であることが確認されています)、OSXの新しいシステムインテグリティ保護(SIP)機能によって問題が発生していると判断しました。この問題は前にstackに記載されています。
彼らの提案はSIPを無効にすることでしたが、私は雇用者の許可を得ていないし、市販のソフトウェアを稼働させるためにシステムセキュリティ機能をオフにする意思もない。だから私は立ち往生している。
本質的に、DYLD_LIBRARY_PATH
変数は単にIDLプロセスに渡されません。 IDLを起動すると、/Applications/exelis/idl85/bin/idl
シェルスクリプトが実行され、その時点で変数が削除されます。idl
スクリプトは自分の変更を認識しません。
私の質問は次のとおりです。他の誰かがIDL-Pythonブリッジを動作させるために(SIPを無効にする以外に)別の方法を見つけましたか?ここには何か別の選択肢がありますか?あるいは、Harris Geospatialの良い人たちがこの機能を実装する別の方法を見つけるまで、これは単純に機能しませんか?
ソフトウェアを実行するためにルートレベルでシステムを変更する必要がある場合は、私の意見では深刻な設計上の問題です。
クリスおかげさまで本当に助けに感謝します。私は現在の雇用主では、ユーザー(自分自身を含む)がsudo権限を持っていないため、上記の手順を試すことができません。 – spacemanjosh
こんにちは@spacemanjosh、 "sudo"なしでコマンドを試してください。あなた自身のアプリケーションフォルダにIDLをインストールした場合、それはうまく動作します。それが "sudo"なしで動作しない場合、管理者にそれをさせる必要があります。 –
ちょっと@クリス・トーレンス。私はこの機能の大ファンだと言わなければならない。これは、LinuxやWindowsでうまく動作します。 Macがこの問題の唯一のプラットフォームだと思われる。私は最新のIDL 8.6でこれを試しましたが、設定ははるかに簡単ですが、sudo特権と同じ要件があります。今は、Linux VMでテストしているだけです。 – spacemanjosh