void XBPython::InitializeInterpreter(ADDON::AddonPtr addon) { /* 歌方: 1、 卦指: 1、 傍苧: 1、 */ InitXBMCModule(); // init xbmc modules InitPluginModule(); // init xbmcplugin modules InitGUIModule(); // init xbmcgui modules InitAddonModule(); // init xbmcaddon modules InitVFSModule(); // init xbmcvfs modules CStdString addonVer = ADDON::GetXbmcApiVersionDependency(addon); bool bwcompatMode = (addon.get() == NULL || (ADDON::AddonVersion(addonVer) <= ADDON::AddonVersion("1.0"))); const char* runscript = bwcompatMode ? RUNSCRIPT_BWCOMPATIBLE : RUNSCRIPT_COMPLIANT; // redirecting default output to debug console if (PyRun_SimpleString(runscript) == -1) { CLog::Log(LOGFATAL, "Python Initialize Error"); } }
void XBPython::InitializeInterpreter() { InitXBMCModule(); // init xbmc modules InitPluginModule(); // init plugin modules InitGUIModule(); // init xbmcgui modules CStdString envstring = ""; // set HTTP_PROXY and HTTPS_PROXY env variables if (g_guiSettings.GetBool("network.usehttpproxy") && g_guiSettings.GetString("network.httpproxyserver") && g_guiSettings.GetString("network.httpproxyport")) { CStdString env; CStdString proxy = "http://" + g_guiSettings.GetString("network.httpproxyserver") + ":" + g_guiSettings.GetString("network.httpproxyport"); envstring += "import os\n"; env.Format("os.environ['HTTP_PROXY']='%s'\n", proxy.c_str()); envstring += env; env.Format("os.environ['HTTPS_PROXY']='%s'\n", proxy.c_str()); envstring += env; }; // redirecting default output to debug console envstring += ( "import xbmc\n" "class xbmcout:\n" " def write(self, data):\n" " xbmc.output(data)\n" " def close(self):\n" " xbmc.output('.')\n" " def flush(self):\n" " xbmc.output('.')\n" "\n" "import sys\n" "sys.stdout = xbmcout()\n" "sys.stderr = xbmcout()\n" "print '-->Python Interpreter Initialized<--'\n" ""); if (PyRun_SimpleString(envstring.c_str()) == -1) { CLog::Log(LOGFATAL, "Python Initialize Error"); } }