33#include "gnc-module.h"
34#include "gnc-module-api.h"
37GNC_MODULE_API_DECL(libgncmod_python)
40int libgncmod_python_gnc_module_system_interface = 0;
43int libgncmod_python_gnc_module_current = 0;
44int libgncmod_python_gnc_module_revision = 0;
45int libgncmod_python_gnc_module_age = 0;
49libgncmod_python_gnc_module_path(
void)
51 return g_strdup(
"gnucash/python");
55libgncmod_python_gnc_module_description(
void)
57 return g_strdup(
"An embedded Python interpreter");
60#if PY_VERSION_HEX >= 0x030b0000
62#pragma GCC diagnostic warning "-Wdeprecated-declarations"
66libgncmod_python_gnc_module_init(
int refcount)
75 PyConfig_InitPythonConfig(&config);
76 status = PyConfig_SetBytesArgv(&config, 0, (
char *
const *)&argv);
77 if (PyStatus_Exception(status))
79 PyConfig_Clear(&config);
83 gchar *pkgdatadir = gnc_path_get_pkgdatadir();
84 gchar *init_filename = g_build_filename(pkgdatadir,
"python/init.py", (
char*)NULL);
85 g_debug(
"Looking for python init script at %s", init_filename);
87 FILE *fp = fopen(init_filename,
"rb");
89 FILE *fp = fopen(init_filename,
"r");
93 PyRun_SimpleFile(fp, init_filename);
100 g_warning(
"Unable to initialize Python module (unable to open %s)", init_filename);
102 g_free(init_filename);
104 PyConfig_Clear(&config);
110libgncmod_python_gnc_module_end(
int refcount)