当Python嵌入C ++时,numpy导入失败

时间:2013-01-11 15:50:49

标签: c++ python numpy

我在使用嵌入到我的C ++应用程序(32位)和静态链接的Python 2.7访问numpy时遇到了问题。在我的应用程序可执行文件中,我已经将python27.dll与Python27目录一起放在了所有需要的DLL中。我还在一个单独的文件夹(C:\ Python27)中安装了Python 2.7和numpy(所有32位)。当我运行我的应用程序并尝试导入numpy时,这是我收到的错误:

Traceback (most recent call last):
File "pytest", line 1, in <module>
    File "C:\Python27\lib\site-packages\numpy\__init__.py", line 137, in <module>
    import add_newdocs
    File "C:\Python27\lib\site-packages\numpy\add_newdocs.py", line 9, in <module>
    from numpy.lib import add_newdoc
    File "C:\Python27\lib\site-packages\numpy\lib\__init__.py", line 4, in <module>
    from type_check import *
    File "C:\Python27\lib\site-packages\numpy\lib\type_check.py", line 8, in <module>
    import numpy.core.numeric as _nx
    File "C:\Python27\lib\site-packages\numpy\core\__init__.py", line 5, in <module>
    import multiarray
ImportError: DLL load failed: The specified module could not be found.

当我从我的应用程序文件夹中删除python27.dll时,我可以导入numpy。当他想要导入任何Python第三方库时,我不能要求客户端手动删除python27.dll ...任何人都有关于如何解决这个问题的想法?这个多阵列模块有什么用?

1 个答案:

答案 0 :(得分:2)

好的,问题解决了。嵌入式应用程序文件夹下的python27.dll文件必须与Python 2.7发行版相同。验证日期以确保它们是相同的。如果它们不相同,您可能会遇到各种问题。

My Application Folder
    myApp.exe
    python27.dll  <-- must be the same as Python installed on your machine
    Python27 Folder
        DLL
        Libs