import numpy
当我将上面一行脚本打包为使用 py2exe 的单个可执行窗口应用程序 http://www.py2exe.org/index.cgi/SingleFileExecutable,我在启动时收到以下警告。
OMP: Warning #178: Function GetModuleHandleEx failed:
OMP: System error #126: The specified module could not be found.
仅当我构建为单个可执行文件时(即仅当 bundle_files=1 时)才会发生此警告。这是我的 setup.py。
from distutils.core import setup
import py2exe
setup(
options = {'py2exe': {'bundle_files': 1}},
windows=['testnumpy.py'],
zipfile = None,
)
这个问题是从 numpy 1.8.0 开始的。当我恢复到 1.6.2 时,警告不会出现。
通常,py2exe 打包的单个可执行文件会捕获警告和回溯,并将它们保存到日志文件中。但不知何故,这些警告没有被捕获,并且应用程序创建了一个控制台窗口来显示警告。我想禁止显示这个额外的控制台窗口。
我该如何解决这个警告问题?
我尝试过的(没有效果):
- 我试过这个重定向 sys.stderr https://stackoverflow.com/questions/1956142/how-to-redirect-stderr-in-python.
- 我在 github numpy 源代码中搜索了 openMP,假设 OMP 代表它,如上所述here https://stackoverflow.com/questions/15478230/pack-a-software-in-python-using-py2exe-with-libiomp5md-dll-not-found。但是,没有任何有用的结果。
- 我已将 libiomp5md.dll 复制到与 setup.py 相同的文件夹中。
- I tried 过滤器警告 https://stackoverflow.com/questions/879173/how-to-ignore-deprecation-warnings-in-python:
- 我尝试了 sys.excepthook。
正如我在评论中所写,从 sourceforge 安装 numpy 1.8.1rc1 确实解决了这个问题,尽管我真的不知道其中的区别......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)