12

当弄乱 Python.h 时,我收到了这个错误:

AttributeError: 'module' object has no attribute 'argv'

C++ 代码:

#include "stdafx.h"  
#include "C:/Python27/include/Python.h"  
#include <iostream>  

using namespace std;  


int main()  
{
    Py_Initialize();
    PyRun_SimpleString("import sys\nprint sys.argv[0]");
}

在 Python 中是:

import sys
print sys.argv[0]

我错过了什么?

4

1 回答 1

21

从概念上讲,sys.argv应该包含调用 Python 的参数(以及调用它的参数)。但是,如果它被这样称呼,它应该有什么?

如果需要,您可以将调用程序加载argvsys中:

int main(int argc, char **argv)
{
    Py_Initialize();
    PySys_SetArgv(argc, argv);
    PyRun_SimpleString("import sys\nprint sys.argv");
}

localhost-2:argv $ ./a.out
['./a.out']
localhost-2:argv $ ./a.out arg0 17
['./a.out', 'arg0', '17']

另请参阅Py_SetProgramName

于 2012-09-01T18:26:00.977 回答