OS 10.7.2 と Apple のデフォルトの python 2.7.1 がインストールされた Mac を使用しています。ソース経由でopencv 2.3.1をインストールしimport cv
ましたが、Python内から動作することを確認できます。import cv
一番上に何もない最小限のpythonスクリプト(「cvTest.py」として保存)を作成し、 py2appを(ターミナルコマンド経由でpy2applet --make-setup cvTest.py; python setup.py py2app
)使用しました。結果のスタンドアロン アプリを、opencv がインストールされていない別のコンピューター (Mac、OS 10.7.2) に移動し、アプリを実行しようとすると、console.app 経由で次のエラーが表示されてクラッシュします。
11-11-10 1:17:38.591 PM [0x0-0xcb9cb9].org.pythonmac.unspecified.cvTest: Traceback (most recent call last):
11-11-10 1:17:38.591 PM [0x0-0xcb9cb9].org.pythonmac.unspecified.cvTest: File "/Users/ra/Downloads/cvTest.app/Contents/Resources/__boot__.py", line 103, in <module>
11-11-10 1:17:38.591 PM [0x0-0xcb9cb9].org.pythonmac.unspecified.cvTest: _argv_emulation()
11-11-10 1:17:38.591 PM [0x0-0xcb9cb9].org.pythonmac.unspecified.cvTest: File "/Users/ra/Downloads/cvTest.app/Contents/Resources/__boot__.py", line 101, in _argv_emulation
11-11-10 1:17:38.591 PM [0x0-0xcb9cb9].org.pythonmac.unspecified.cvTest: _get_argvemulator().mainloop()
11-11-10 1:17:38.591 PM [0x0-0xcb9cb9].org.pythonmac.unspecified.cvTest: File "/Users/ra/Downloads/cvTest.app/Contents/Resources/__boot__.py", line 40, in mainloop
11-11-10 1:17:38.591 PM [0x0-0xcb9cb9].org.pythonmac.unspecified.cvTest: stoptime = Evt.TickCount() + timeout
11-11-10 1:17:38.591 PM [0x0-0xcb9cb9].org.pythonmac.unspecified.cvTest: AttributeError: 'module' object has no attribute 'TickCount'
11-11-10 1:17:38.661 PM cvTest: cvTest Error
11-11-10 1:17:39.888 PM com.apple.launchd.peruser.502: ([0x0-0xcb9cb9].org.pythonmac.unspecified.cvTest[49524]) Exited with code: 255
次に、単純な bash スクリプトを作成して、スタンドアロン アプリを掘り下げ、端末からアプリのバイナリを実行できるようにしました。
#!/bin/bash
CMD=$0
PROGDIR=$(echo $CMD|perl -pe 's|/[^/]*$||')
cd "$PROGDIR"
"./cvTest.app/Contents/MacOS/cvTest"
これを実行すると、次のエラーが発生します。
Traceback (most recent call last):
File "/Users/ra/Downloads/cvTest.app/Contents/Resources/__boot__.py", line 137, in <module>
_run('cvTest.py')
File "/Users/ra/Downloads/cvTest.app/Contents/Resources/__boot__.py", line 134, in _run
execfile(path, globals(), globals())
File "/Users/ra/Downloads/cvTest.app/Contents/Resources/cvTest.py", line 1, in <module>
import cv
File "cv.pyc", line 1, in <module>
ImportError: No module named cv2.cv
2011-11-10 13:18:26.239 cvTest[49578:707] cvTest Error
[Process completed]
それで、ここで何が起こっているのですか?エラーが発生するのはなぜですか? opencv を py2app で作成されたアプリにバンドルして動作させる方法はありますimport cv
か?