おはよう、私はOSX El Capitanを実行しているMacで起動デーモンを使って遊んでいます。私はPythonでマシンを起動するときに実行したいスクリプトを作成しました(Webカメラで画像をスナップし、指定したディレクトリに保存する必要があります)。適切なplistを作成し、回復モードで起動してcsrutilを無効にしてから、/ System/Library/LaunchDaemonsにplistを追加しました。再起動すると、写真が表示されず、緑色のウェブカメラのランプも点灯しません。Python起動デーモン(OSX)でモジュールをインポートする
スクリプトのエラーログを確認したところ、PythonスクリプトがCV2(ImportError:module cv2という名前はありません)をインポートできないというエラーが発生しました。しかし、私はcv2をインストールしていて、システムが起動すると動作します。私のスクリプトは、cv2の前にインポートされているので、他のモジュール(os、datetime、およびtime)をロードできるようです。
追加のセキュリティ機能ですか?これを回避する方法はありますか?回避策がある場合、csrutilが有効になっていても動作しますか?私はそれを無効にして走り回りたいとは思わないが、LaunchDaemonsディレクトリに必要な変更を加えてから、再度有効にするだけで無効にする。私はcsrutilを無効にしてリブートしても、インポートエラーを受け取りました。それで(少なくとも私が知る限り)そのようには見えません。
ありがとうございます!
編集:私のデーモンのplistで指定されたpythonパスがopenCVが関連付けられているパスではないことがわかりました。しかし、クイックエコー$ PYTHONPATHは私に/usr/local/lib/python2.7/site-packagesを与えます。plistに入れたときに起動時にエラーが出ることはなくなりましたが、今は全く実行されていないようです。
また、私は/ tmp /になるように書き込むディレクトリを変更しようとしましたが、すべてのユーザーがそのディレクトリにアクセスできますが、まだ役に立たないからです。