最近做一个小程序,用到了FFT,所以用了SCIPY库,但发现打包成exe不能运行,所以研究了一下,发现是pyinstaller没有包含sci的外部dll导致的,下面贴上解决方案。
参考链接地址:
https://github.com/pyinstaller/pyinstaller/issues/2987
调试技巧:
不要直接用-F打包,可以使用pyinstaller tk_fft.py 来生成程序,通过cmd命令行运行程序看报错信息,会了解错在那边,然后查找报错信息来找到对应的问题解决方案。
有关pyinstaller的问题可在以下链接来操作:
https://github.com/pyinstaller/pyinstaller
1 |
pyinstaller tk_fft.py --hidden-import scipy._lib.messagestream --paths "C:\Python3\Lib\site-packages\scipy\extra-dll" |
需要加这些后缀,如果需要打包在一个exe中的话,需要打包代码如下:(打包成一个文件有问题,慎用!!!)
1 |
pyinstaller -F -w tk_fft.py --hidden-import scipy._lib.messagestream --paths "C:\Python3\Lib\site-packages\scipy\extra-dll" |
-w表示去掉调试窗口。
普通打包
1 |
pyinstaller -w tk_fft.py --hidden-import scipy._lib.messagestream --paths "C:\Python3\Lib\site-packages\scipy\extra-dll" |
好像打包成一个exe文件会太大,导致不能运行。
程序窗口