微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用pyinstaller与scipy.optimize leastsq的隐藏导入

我的wx python应用程序使用pyinstaller编译得很好,直到添加了一些基于scipy.optimize import leastsq语句的功能.

我该如何解决

解决方法

第一次在cmd中运行命令pyinstaller myscript.py时,将创建一个myscript.spec文件(或者您可以手动创建它).
这个文件允许你指定隐藏的导入,我发现(通过漫长而乏味的试错过程)以下隐藏的导入功能
'scipy.special._ufuncs_cxx'
'scipy.linalg.cython_blas'
'scipy.linalg.cython_lapack'
'scipy.integrate'
'scipy.integrate.quadrature'
'scipy.integrate.odepack'
'scipy.integrate._odepack'
'scipy.integrate.quadpack'
'scipy.integrate._quadpack'
'scipy.integrate._ode'
'scipy.integrate.vode'
'scipy.integrate._dop'
'scipy.integrate.lsoda'

这些可能应该通过钩子联系起来,但我无法理解如何,所以这是“快速和肮脏”的方式.

现在执行pyinstaller myscript.spec.

我的完整文件看起来如下:

# -*- mode: python -*-
a = Analysis(['myscript.py'],pathex=['C:\\SourceCode'],hiddenimports=['scipy.special._ufuncs_cxx','scipy.linalg.cython_blas','scipy.linalg.cython_lapack','scipy.integrate','scipy.integrate.quadrature','scipy.integrate.odepack','scipy.integrate._odepack','scipy.integrate.quadpack','scipy.integrate._quadpack','scipy.integrate._ode','scipy.integrate.vode','scipy.integrate._dop','scipy.integrate.lsoda'],hookspath=None,runtime_hooks=None)
pyz = PYZ(a.pure)
exe = EXE(pyz,a.scripts,exclude_binaries=True,name='myscript.exe',debug=False,strip=None,upx=True,console=True )
coll = COLLECT(exe,a.binaries,a.zipfiles,a.datas,name='myscript')

原文地址:https://www.jb51.cc/python/185663.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐