When messing around with Python.h I got this error:
AttributeError: 'module' object has no attribute 'argv'
C++ code:
#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]");
}
Which in Python is:
import sys
print sys.argv[0]
What am I missing?
1 Answer 1
Conceptually, sys.argv should contain the arguments that Python was called with (and what it was called under). What should it have if it were called like this, though?
You can load the calling program's argv into sys, if you want:
int main(int argc, char **argv)
{
Py_Initialize();
PySys_SetArgv(argc, argv);
PyRun_SimpleString("import sys\nprint sys.argv");
}
gives
localhost-2:argv $ ./a.out
['./a.out']
localhost-2:argv $ ./a.out arg0 17
['./a.out', 'arg0', '17']
See also Py_SetProgramName.
answered Sep 1, 2012 at 18:26
DSM
355k67 gold badges606 silver badges504 bronze badges
Sign up to request clarification or add additional context in comments.
Comments
Explore related questions
See similar questions with these tags.
default