mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
parent
c820eaf347
commit
869bad9b5a
2 changed files with 31 additions and 14 deletions
|
@ -2,34 +2,38 @@
|
|||
|
||||
#include "Python.h"
|
||||
|
||||
void initxyzzy(void); /* Forward */
|
||||
PyObject* PyInit_xyzzy(void); /* Forward */
|
||||
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
/* Ignore passed-in argc/argv. If desired, conversion
|
||||
should use mbstowcs to convert them. */
|
||||
wchar_t *args[] = {L"embed", L"hello", 0};
|
||||
|
||||
/* Pass argv[0] to the Python interpreter */
|
||||
Py_SetProgramName(argv[0]);
|
||||
Py_SetProgramName(args[0]);
|
||||
|
||||
/* Add a static module */
|
||||
PyImport_AppendInittab("xyzzy", PyInit_xyzzy);
|
||||
|
||||
/* Initialize the Python interpreter. Required. */
|
||||
Py_Initialize();
|
||||
|
||||
/* Add a static module */
|
||||
initxyzzy();
|
||||
|
||||
/* Define sys.argv. It is up to the application if you
|
||||
want this; you can also let it undefined (since the Python
|
||||
code is generally not a main program it has no business
|
||||
touching sys.argv...) */
|
||||
PySys_SetArgv(argc, argv);
|
||||
PySys_SetArgv(2, args);
|
||||
|
||||
/* Do some application specific code */
|
||||
printf("Hello, brave new world\n\n");
|
||||
|
||||
/* Execute some Python statements (in module __main__) */
|
||||
PyRun_SimpleString("import sys\n");
|
||||
PyRun_SimpleString("print sys.builtin_module_names\n");
|
||||
PyRun_SimpleString("print sys.modules.keys()\n");
|
||||
PyRun_SimpleString("print sys.executable\n");
|
||||
PyRun_SimpleString("print sys.argv\n");
|
||||
PyRun_SimpleString("print(sys.builtin_module_names)\n");
|
||||
PyRun_SimpleString("print(sys.modules.keys())\n");
|
||||
PyRun_SimpleString("print(sys.executable)\n");
|
||||
PyRun_SimpleString("print(sys.argv)\n");
|
||||
|
||||
/* Note that you can call any public function of the Python
|
||||
interpreter here, e.g. call_object(). */
|
||||
|
@ -57,9 +61,20 @@ static PyMethodDef xyzzy_methods[] = {
|
|||
{NULL, NULL} /* sentinel */
|
||||
};
|
||||
|
||||
void
|
||||
initxyzzy(void)
|
||||
static struct PyModuleDef xyzzymodule = {
|
||||
{}, /* m_base */
|
||||
"xyzzy", /* m_name */
|
||||
0, /* m_doc */
|
||||
0, /* m_size */
|
||||
xyzzy_methods, /* m_methods */
|
||||
0, /* m_reload */
|
||||
0, /* m_traverse */
|
||||
0, /* m_clear */
|
||||
0, /* m_free */
|
||||
};
|
||||
|
||||
PyObject*
|
||||
PyInit_xyzzy(void)
|
||||
{
|
||||
PyImport_AddModule("xyzzy");
|
||||
Py_InitModule("xyzzy", xyzzy_methods);
|
||||
return PyModule_Create(&xyzzymodule);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue