|
69 | 69 |
|
70 | 70 | import com.oracle.graal.python.PythonLanguage;
|
71 | 71 | import com.oracle.graal.python.builtins.Python3Core;
|
| 72 | +import com.oracle.graal.python.builtins.modules.ImpModuleBuiltins; |
72 | 73 | import com.oracle.graal.python.builtins.modules.ctypes.CtypesModuleBuiltins.CtypesThreadState;
|
73 | 74 | import com.oracle.graal.python.builtins.objects.PNone;
|
74 | 75 | import com.oracle.graal.python.builtins.objects.PythonAbstractObject;
|
|
98 | 99 | import com.oracle.graal.python.builtins.objects.str.PString;
|
99 | 100 | import com.oracle.graal.python.builtins.objects.thread.PLock;
|
100 | 101 | import com.oracle.graal.python.builtins.objects.tuple.PTuple;
|
| 102 | +import com.oracle.graal.python.lib.PyDictSetItem; |
101 | 103 | import com.oracle.graal.python.lib.PyObjectCallMethodObjArgs;
|
102 | 104 | import com.oracle.graal.python.nodes.SpecialAttributeNames;
|
103 | 105 | import com.oracle.graal.python.nodes.SpecialMethodNames;
|
@@ -1180,7 +1182,16 @@ public void patch(Env newEnv) {
|
1180 | 1182 | }
|
1181 | 1183 |
|
1182 | 1184 | private void importSiteIfForced() {
|
1183 |
| - if (getOption(PythonOptions.ForceImportSite)) { |
| 1185 | + PythonModule siteModule; |
| 1186 | + if (getOption(PythonOptions.ForceImportSite) && |
| 1187 | + getOption(PythonOptions.PythonPath).isEmpty() && |
| 1188 | + (siteModule = ImpModuleBuiltins.importFrozenModuleObject(this, "graalpython.site", true)) != null) { |
| 1189 | + // assume we can use the frozen site module |
| 1190 | + // TODO: rename graalpython.site again to just site when we upgrade to Python 3.10+ |
| 1191 | + // or newer and remove this hack |
| 1192 | + PyDictSetItem.getUncached().execute(null, getSysModules(), "site", siteModule); |
| 1193 | + LOGGER.log(Level.FINE, () -> "import 'site' # <frozen>"); |
| 1194 | + } else { |
1184 | 1195 | CallTarget site = env.parsePublic(FORCE_IMPORTS_SOURCE);
|
1185 | 1196 | site.call();
|
1186 | 1197 | }
|
|
0 commit comments