在Windows 7下使用VS2008在嵌入式python解释器上使用numpy

时间:2014-07-03 08:18:56

标签: c++ python-2.7 visual-studio-2008 numpy windows-7

我们来看看我的项目。

我正在使用Visual Studio 2008,Python 2.7和numpy 1.8.1(但我已经尝试了几个版本,但没有一个工作)。我的项目正在调试模式下编译。

这是一个非常简单的代码:

/* = Main.cpp file = */
#include "stdafx.h"
#include "Python.h"

int _tmain(int argc, _TCHAR* argv[])
{
    PyObject *pName, *main;
    Py_Initialize();

    pName = PyUnicode_FromString("main");
    main = PyImport_Import(pName);

    Py_XDECREF(pName);

    if (main != NULL) 
    {
        printf("Python Module Loaded!!\n");
    }
    else  
    {
        printf("Unable to load Python Module!!\n");
    }
    return 0;
}

""" = Main.py file = """
print 'Hello World!'

如果我执行此代码,我会得到:

Code Output

正如预期的那样。

一旦我将main.py更改为:

,就会出现问题
""" = Main.py file = """
import numpy
print 'Hello World!'

然后我得到了:

Code output

我试图在python解释器上单独运行main.py(不将其嵌入到C ++中)然后一切正常:

Code output

我还尝试了对main.cpp的修改,如下所示:

#include "stdafx.h"
#include "Python.h"

int _tmain(int argc, _TCHAR* argv[])
{
    PyObject *pName, *main;
    Py_Initialize();

    PyRun_SimpleString("import numpy");

    return 0;
}

从此代码输出:

Code output

最后我还尝试在发布模式下编译main.cpp代码的原始版本,然后输出为: Code output

所以,我的问题是:我可以做些什么来使用Visual Studio 2008上的嵌入式解释器在调试编译下使numpy工作?

1 个答案:

答案 0 :(得分:0)

你知道你必须使用内置的python调试版本吗?那可能是你的问题。 (我会发表评论但没有代表):))