patch [#31507] site not automatically imported when using external python package

made some modificatons to normal python startup also.
This commit is contained in:
Campbell Barton 2012-05-18 10:19:49 +00:00
parent f55b6a5331
commit 181f3670c9
2 changed files with 16 additions and 8 deletions

@ -223,6 +223,7 @@ void BPY_python_start(int argc, const char **argv)
{
#ifndef WITH_PYTHON_MODULE
PyThreadState *py_tstate = NULL;
const char *py_path_bundle = BLI_get_folder(BLENDER_SYSTEM_PYTHON, NULL);
/* not essential but nice to set our name */
static wchar_t program_path_wchar[FILE_MAX]; /* python holds a reference */
@ -233,7 +234,7 @@ void BPY_python_start(int argc, const char **argv)
PyImport_ExtendInittab(bpy_internal_modules);
/* allow to use our own included python */
PyC_SetHomePath(BLI_get_folder(BLENDER_SYSTEM_PYTHON, NULL));
PyC_SetHomePath(py_path_bundle);
/* without this the sys.stdout may be set to 'ascii'
* (it is on my system at least), where printing unicode values will raise
@ -245,7 +246,11 @@ void BPY_python_start(int argc, const char **argv)
/* Python 3.2 now looks for '2.xx/python/include/python3.2d/pyconfig.h' to
* parse from the 'sysconfig' module which is used by 'site',
* so for now disable site. alternatively we could copy the file. */
Py_NoSiteFlag = 1;
if (py_path_bundle) {
Py_NoSiteFlag = 1;
}
Py_FrozenFlag = 1;
Py_Initialize();

@ -1843,19 +1843,24 @@ PyObject* initGamePlayerPythonScripting(const STR_String& progname, TPythonSecur
* somehow it remembers the sys.path - Campbell
*/
static bool first_time = true;
char *py_path_bundle = BLI_get_folder(BLENDER_SYSTEM_PYTHON, NULL);
#if 0 // TODO - py3
STR_String pname = progname;
Py_SetProgramName(pname.Ptr());
#endif
Py_NoSiteFlag=1;
Py_FrozenFlag=1;
if (py_path_bundle != NULL) {
Py_NoSiteFlag = 1;
}
Py_FrozenFlag = 1;
/* must run before python initializes */
PyImport_ExtendInittab(bge_internal_modules);
/* find local python installation */
PyC_SetHomePath(BLI_get_folder(BLENDER_SYSTEM_PYTHON, NULL));
PyC_SetHomePath(py_path_bundle);
Py_Initialize();
@ -1929,8 +1934,6 @@ PyObject* initGamePythonScripting(const STR_String& progname, TPythonSecurityLev
STR_String pname = progname;
Py_SetProgramName(pname.Ptr());
#endif
Py_NoSiteFlag=1;
Py_FrozenFlag=1;
#ifdef WITH_AUDASPACE
/* accessing a SoundActuator's sound results in a crash if aud is not initialized... */