Py_InitializeEx(int install_sigs)

Last-modified: 2007-06-07 (木) 02:07:11

初期化関数

一度しか実行されない。

PyInterpreterState_New()

PyThreadState_New(PyInterpreterState)

PyThreadState_Swap(PyThreadState)

#Stackless

_Py_ReadyTypes()?

_PyFrame_Init()?

_PyInt_Init()?

_PyFloat_Init()?

interp->modules, interp->modules_reloading = PyDict_New();
インタプリタのモジュール用辞書作成

_PyUnicode_Init()?

_PyBuiltin_Init()?

interp->builtins = PyModule_GetDict(bimod)
ビルトインモジュールのロード

Py_INCREF(interp->builtins)
GCされないように参照をインクリメントする

_PySys_Init()?

interp->sysdict = PyModule_GetDict(sysmod)
sysモジュールのロード

Py_INCREF(interp->sysdict)
GCされないように参照をインクリメントする

_PyImport_FixupExtension(char*, char*)
_PyImport_FixupExtension("sys", "sys")

PySys_SetPath(?)?Py_GetPath()?
PySys_SetPath(Py_GetPath())

PyDict_SetItemString(interp->sysdict, "modules", interp->modules)
sys.modulesにinterp->modulesを指定

_PyImport_Init()?

/* initialize builtin exceptions */
_PyExc_Init()?
_PyImport_FixupExtension(char*, char*)
_PyImport_FixupExtension("exceptions", "exceptions")

_PyImport_FixupExtension(char*, char*)
_PyImport_FixupExtension("__builtin__", "__builtin__")

_PyImportHooks_Init()?

if(install_sigs)
initsigs()?

#Stackless

initmain()

if(!Py_NoSiteFlag)
initsite()?

/* auto-thread-state API, if available */

#ifdef
_PyGILState_Init(PyInterpreterState, PyThreadState)?

#endif

PyImport_ImportModule(char*)?
warnings_module = PyImport_ImportModule("warnings")
if (!warnings_module)
PyErr_Clear()?

Unicode初期化処理群