工程使用pyinstaller3.5打包,工程使用到了tensorflow2.0,opencv-contrib-python 4.1,numpy1.6,打包後運作exe提示與numpy相關的錯誤:
File "d:\project\handwriting\ocrcn_tf2\venv\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "lib\site-packages\cv2\__init__.py", line 3, in <module>
ImportError: numpy.core.multiarray failed to import
這是pyinstaller的問題,沒有把對應的子產品打包進來。
解決方法:在運作的py檔案加入
import numpy.core._dtype_ctypes
網上有提到降低numpy版本的方式,沒有成功。而且numpy版本降低了,直接運作.py檔案會提示錯誤:
tensorflow/python/lib/core/bfloat16.cc:675] Check failed: PyBfloat16_Type.tp_base != nullptr
這是因為tensorflow2.0需要高版本的numpy。