33 #include "gnc-module.h" 34 #include "gnc-module-api.h" 37 GNC_MODULE_API_DECL(libgncmod_python)
40 int libgncmod_python_gnc_module_system_interface = 0;
43 int libgncmod_python_gnc_module_current = 0;
44 int libgncmod_python_gnc_module_revision = 0;
45 int libgncmod_python_gnc_module_age = 0;
49 libgncmod_python_gnc_module_path(
void)
51 return g_strdup(
"gnucash/python");
55 libgncmod_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" 66 libgncmod_python_gnc_module_init(
int refcount)
75 PyConfig_InitPythonConfig(&config);
76 status = PyConfig_SetBytesArgv(&config, 0, &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);
110 libgncmod_python_gnc_module_end(
int refcount)