コードを直接実行すると何もエラーははかないのですが、ビルドするとエラーがでてしまいます。
↓のエラーが出たので、
SolvedError
1/Users/teratail/app/pyside/dist/main ; exit; 2Traceback (most recent call last): 3 File "main.py", line 2, in <module> 4 File "/usr/local/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module 5 exec(bytecode, module.__dict__) 6 File "module.py", line 3, in <module> 7 File "/usr/local/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module 8 exec(bytecode, module.__dict__) 9 File "cv2/__init__.py", line 3, in <module> 10ImportError: dlopen(/var/folders/f_/rdrw1x9x5ml9rb7mhj95cz5r0000gp/T/_MEItA4VRc/cv2/cv2.cpython-37m-darwin.so, 2): Library not loaded: @loader_path/libpng16.16.dylib 11 Referenced from: /private/var/folders/f_/rdrw1x9x5ml9rb7mhj95cz5r0000gp/T/_MEItA4VRc/libfreetype.6.dylib 12 Reason: Incompatible library version: libfreetype.6.dylib requires version 54.0.0 or later, but libpng16.16.dylib provides version 38.0.0 13[2868] Failed to execute script main
CMakeでopencvをビルドした後、再度試すと別のエラーがでました。
Error
1 File "/Users/teratail/app/pyside/dist/main.app/Contents/Resources/__boot__.py", line 153, in <module> 2 _run() 3 File "/Users/teratail/app/pyside/dist/main.app/Contents/Resources/__boot__.py", line 82, in _run 4 exec(compile(source, path, 'exec'), globals(), globals()) 5 File "/Users/teratail/app/pyside/dist/main.app/Contents/Resources/main.py", line 2, in <module> 6 import app_module 7 File "app_module.pyc", line 2, in <module> 8 File "cv2/__init__.pyc", line 96, in <module> 9 File "cv2/__init__.pyc", line 58, in bootstrap 10 File "cv2/__init__.pyc", line 56, in load_first_config 11ImportError: OpenCV loader: missing configuration file: ['config.py']. Check OpenCV installation.
cv2フォルダ内には、config.py,config-3.7.pyはあります。
よろしくお願いします。
###環境
macOS 10.12.6
python 3.7.5
pyinstaller 3.5
opencv-python(contrib-python,python-headless含む) 4.1.2.30
py2app 0.19
試したこと
opencvのバージョンをさげる。
brew docterでWARNINGがでないようにする。
brew update upgradeで全て最新バージョンに更新
###追記
python3
1import cv2 2print(cv2.__file__)
で確認すると、
fish
1/usr/local/lib/python3.7/site-packages/cv2/python-3.7/cv2.cpython-37m-darwin.so
と出力されたので、
fish
1pyinstaller main.py --paths='/usr/local/lib/python3.7/site-packages/cv2/python-3.7' --onefile --noconsole
この設定でビルドすると、また最初のエラー(参照できないopencvを参照しようとする)に戻ります。
あなたの回答
tips
プレビュー