包含PyInstaller的python模块?

时间:2013-02-10 14:00:00

标签: python scipy pyinstaller

在我第一次尝试将我的python代码打包成.exe文件时,我遇到了使用scipy.weave模块打包和运行代码的问题。当我检查我的warnproject.txt时,我看到了1324行警告(下面​​包含几行)

W: no module named numpy.negative (top-level import by scipy.weave.size_check)
W: no module named numpy.asarray (top-level import by scipy.optimize.nonlin)
W: no module named termios (top-level import by tty)
W: no module named scipy.arange (conditional import by scipy.sparse.linalg.isolve.minres)
W: no module named numpy.polyder (top-level import by scipy.signal.signaltools)
W: no module named matplotlib.rcParams (top-level import by matplotlib.figure)
etc...

第一个问题:为什么我会收到这么多警告,而程序部分运行正常?

第二个问题:如何以正确的方式导入这些模块?在我的project.spec文件中,我写了exe = EXE(..., a.binaries + [('scipy.weave', 'C:\Python27\Lib\site-packages', 'PYMODULE')], ...),但它找不到模块,也不会打包任何文件?

1 个答案:

答案 0 :(得分:1)

一种方法是使用Analysis对象的hooks选项。 这迫使Analysis(编译依赖列表的人)认为钩子中的模块已被导入,因此是必需的。

a = Analysis(['myscript.py'], hookspath='/my/priv/hooks')

hooks文件是简单的文本文件。

另一方面,我有很多这样的警告,我的应用程序在Linux和Windows上运行,没有导入相关的问题。