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 に答える