初期化関数
一度しか実行されない。
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
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初期化処理群