pyinstaller打包python程序遇到的问题

1 python脚本中包含import caffe
问题:将脚本打包成二进制可执行文件后,执行二进制文件,报错,导致报错的代码主要有:
(1) from skimage.transform import resize,导致报错"ImportError: No module named interpolation";
(2) import skimage.io,导致报错"skimage.io ValueError: max() arg is an empty sequence"
(3) 出现警告"ssl_.py:369: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform"
分析:这几个问题的出现都是由于安装的python库scikit-image版本太低.
解决方法:
sudo pip install numpy==1.15.0
sudo pip install scikit-image==0.13.0

2 python脚本中包含import mxnet,import cv2,import caffe
问题:将脚本打包成二进制可执行文件后,执行二进制文件,报错
  File "demo.py", line 33, in <module>
    import mxnet as mx
  File "/usr/local/lib/python2.7/dist-packages/PyInstaller/loader/pyimod03_importers.py", line 395, in load_module
    exec(bytecode, module.__dict__)
  File "mxnet/__init__.py", line 24, in <module>
  File "/usr/local/lib/python2.7/dist-packages/PyInstaller/loader/pyimod03_importers.py", line 395, in load_module
    exec(bytecode, module.__dict__)
  File "mxnet/context.py", line 24, in <module>
  File "/usr/local/lib/python2.7/dist-packages/PyInstaller/loader/pyimod03_importers.py", line 395, in load_module
    exec(bytecode, module.__dict__)
  File "mxnet/base.py", line 213, in <module>
  File "mxnet/base.py", line 204, in _load_lib
  File "PyInstaller/loader/pyiboot01_bootstrap.py", line 151, in __init__
__main__.PyInstallerImportError: Failed to load dynlib/dll './dist/libmxnet.so'. Most probably this dynlib/dll was not found when the application was frozen.
分析:产生的原因待分析???
解决办法:
调整三者import的顺序,先import mxnet,再import cv2,最后再import caffe

猜你喜欢

转载自blog.csdn.net/maidabu/article/details/86616299