Skip to main content
 首页 » 编程设计

python之包括 PyInstaller 的 python 模块

2025年05月04日11fff_TT

在我第一次尝试将我的 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')], ...) 但它找不到模块并且不会打包任何文件?

请您参考如下方法:

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

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

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

另一方面,我有大量此类警告,而且我的应用程序在 linux 和 windows 上运行时没有导入相关问题。