用py2exe編譯skimage(scikit-image)時遇到的錯誤


1.

RuntimeError: maximum recursion depth exceeded

超過遞迴次數,可透過更改limit來改善
import sys
sys.setrecursionlimit(5000)
https://stackoverflow.com/questions/29211840/maximum-recursion-depth-exceeded-while-compiling-py-file-with-py2exe

2.

error: MSVCP90.dll: No such file or directory 

解決方法
2a.安裝Microsoft Visual C++ 2008 Redistributable Package
2b.下載MSVCP90.DLL 並且放到Python2x/DLLs 目錄之下
http://www.dll-files.com/dllindex/dll-files.shtml?msvcp90
2c.若對方/自己主機確認有裝package,可排除打包此.dll檔
dll_excludes = ["MSVCP90.dll"]
https://blog.csdn.net/ablo_zhou/article/details/5295750

3.

error: [Errno 2] No such file or directory:
'libopenblas.BNVRK7633HSX7YVO2TADGR4A5KEKXJAW.gfortran-win_amd64.dll'

error: [Errno 2] No such file or directory:
'libdet.PCRWMZTB37MYY7FL4VBCJUBDJLR2MDLW.gfortran-win_amd64.dll'

從C:\Python27\Lib\site-packages\numpy\.libs移到C:\Python27\DLLs或是exe產生之資料夾下
https://stackoverflow.com/questions/48728067/where-can-i-get-obscure-dll-so-py2exe-will-compile/48733540#48733540
4.

error: compiling  'C:\Python27\lib\site-packages\jinja2\asyncsupport.py' failed
failed SyntaxError: invalid syntax (asyncsupport.py, line 22)

python3.5以前會遇到這個問題
exclude asyncsupport.py
https://github.com/pallets/jinja/issues/655

留言