numpy 1.8.0与py2exe打包时出现OMP警告

numpy 1.8.0与py2exe打包时出现OMP警告,numpy,py2exe,Numpy,Py2exe,当我将以上一行脚本打包为时,在启动时会收到以下警告 import numpy 此警告仅在生成为单个可执行文件时发生(即,仅当bundle_files=1时)。这是我的setup.py OMP: Warning #178: Function GetModuleHandleEx failed: OMP: System error #126: The specified module could not be found. 这个问题是从numpy 1.8.0开始的。当我回到1.6.2时,警告不会出

当我将以上一行脚本打包为时,在启动时会收到以下警告

import numpy
此警告仅在生成为单个可执行文件时发生(即,仅当bundle_files=1时)。这是我的setup.py

OMP: Warning #178: Function GetModuleHandleEx failed:
OMP: System error #126: The specified module could not be found.
这个问题是从numpy 1.8.0开始的。当我回到1.6.2时,警告不会出现

通常,由py2exe打包的单个可执行文件将捕获警告和回溯,并将其保存到日志文件中。但不知何故,这些警告并没有被捕获,应用程序创建了一个控制台窗口来显示警告。我想取消显示此附加控制台窗口

如何解决此警告问题

我尝试的(没有任何效果):

  • 我试过这个
  • 我在github numpy源代码中搜索openMP,假设OMP代表如上所述的openMP。但是,没有任何有用的结果
  • 我已将libiomp5md.dll复制到与setup.py相同的文件夹中
  • 我试过:
  • 我试过sys.excepthook

  • 正如我在评论中所写的那样,从sourceforge安装numpy 1.8.1rc1确实解决了这个问题,尽管我真的不知道它们之间的区别…

    我在numpy 1.13.1+mkl和scipy 1.19.1中遇到了这个问题。恢复到numpy 1.8.1rc1不是一个可接受的解决方案

    我将此问题跟踪到scipy.integrate子包。导入此包时会弹出警告消息。似乎使用MKL的库不喜欢从library.zip调用,在使用bundle选项2时,py2exe就是在library.zip中放置包的


    解决方案是在py2exe安装脚本中排除scipy和numpy,并将它们的整个包文件夹复制到分发目录中,然后将该目录添加到主python脚本顶部的系统路径中。

    实际上,我得到了一些关于问题根源的提示。我使用的numpy安装程序来自Python(x,y)项目,它在站点包的numpy目录中有config.py文件。我可以在这个文件中看到libiomp5md,但是原始numpy源代码中没有libiomp5md。然后,我使用了位于的sourceforge的安装程序。而且,问题已经解决了。虽然它针对的是一个稍微不同的警告,但这表明问题与OpenMP运行时问题有关,而不是Numpy本身。作为进一步的证据,我在Numpy 1.8.1(无MKL优化)下体验到与py2exe相同的警告。我尝试在环境中设置
    KMP\u WARNINGS=0
    ,果然没有效果。SourceForge的Numpy 1.8.1版本必须使用已修复的OpenMP版本。很高兴知道Anaconda也有这个问题。您的意思是在windows中将KMP_警告设置为环境变量吗?numpy应该检查这个变量吗?或者,您尝试使用这样的选项构建numpy??我似乎找不到1.8.1rc1,sourceforge链接指向最新的1.9.2,我可以浏览到1.8.1,但找不到1.8.1rc1?有什么建议吗
    from distutils.core import setup
    import py2exe
    
    setup(
        options = {'py2exe': {'bundle_files': 1}},
        windows=['testnumpy.py'],
        zipfile = None,
    )