#include
#include
#include
using namespace std;
int
main(int argc, char *argv[])
{
wchar_t * pathEnv = _wgetenv(L"PATH");
wchar_t *program = Py_DecodeLocale(argv[0], NULL);
if (program == NULL) {
fprintf(stderr, "Fatal error: cannot decode argv[0]\n");
exit(1);
}
// Works, sets correct environment
Py_SetPythonHome(L"C:\\Users\\weber\\AppData\\Local\\conda\\conda\\envs\\libertem\\");
// Breaks, doesn't find Python base packages
// venv is based on a conda env
//Py_SetPythonHome(L"C:\\Users\\weber\\Documents\\LiberTEM\\test-venv\\");
// Breaks, doesn't find Python base packages
// venv is based on system-wide Python C:\PROGRAM FILES\PYTHON36
//Py_SetPythonHome(L"C:\\Users\\weber\\Documents\\LiberTEM\\test-venv2\\");
// Works, is default if Py_SetPythonHome() is not called
// This is the Python installation the binary is compiled against
//Py_SetPythonHome(L"C:\\Program Files\\Python36\\");
// No impact on path setup
//Py_SetProgramName(L"C:\\Users\\weber\\Documents\\LiberTEM\\test-venv\\Scripts\\python.exe");
// No impact on path setup
//Py_SetProgramName(L"C:\\Users\\weber\\AppData\\Local\\conda\\conda\\envs\\libertem\\python.exe");
// No impact on path setup, recommended in embedding example
//Py_SetProgramName(program); /* optional but recommended */
cout << "Initializing... ";
Py_Initialize();
cout << "initalized.\n";
PyRun_SimpleString(
"import site\n"
"import sys\n"
"print('sys.version: ', sys.version)\n"
"print('sys.path: ', sys.path)\n"
"print('sys.prefix: ', sys.prefix)\n"
"print('sys.exec_prefix: ', sys.exec_prefix)\n"
"print('sys.base_prefix: ', sys.base_prefix)\n"
"print('sys.base_exec_prefix: ', sys.base_exec_prefix)\n"
);
if (Py_FinalizeEx() < 0) {
exit(120);
}
PyMem_RawFree(program);
return 0;
}