diff options
Diffstat (limited to 'Python')
-rw-r--r-- | Python/import.c | 9 | ||||
-rw-r--r-- | Python/pythonrun.c | 3 | ||||
-rw-r--r-- | Python/sysmodule.c | 3 | ||||
-rw-r--r-- | Python/thread.c | 2 |
4 files changed, 13 insertions, 4 deletions
diff --git a/Python/import.c b/Python/import.c index f342143..6500f23 100644 --- a/Python/import.c +++ b/Python/import.c @@ -954,8 +954,11 @@ load_source_module(char *name, char *pathname, FILE *fp) if (Py_VerboseFlag) PySys_WriteStderr("import %s # from %s\n", name, pathname); - if (cpathname) - write_compiled_module(co, cpathname, mtime); + if (cpathname) { + PyObject *ro = PySys_GetObject("dont_write_bytecode"); + if (ro == NULL || !PyObject_IsTrue(ro)) + write_compiled_module(co, cpathname, mtime); + } } m = PyImport_ExecCodeModuleEx(name, (PyObject *)co, pathname); Py_DECREF(co); @@ -1604,7 +1607,7 @@ case_ok(char *buf, Py_ssize_t len, Py_ssize_t namelen, char *name) FILEFINDBUF3 ffbuf; APIRET rc; - if (getenv("PYTHONCASEOK") != NULL) + if (Py_GETENV("PYTHONCASEOK") != NULL) return 1; rc = DosFindFirst(buf, diff --git a/Python/pythonrun.c b/Python/pythonrun.c index faacb44..9b72908 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -76,6 +76,7 @@ int Py_InteractiveFlag; /* Needed by Py_FdIsInteractive() below */ int Py_InspectFlag; /* Needed to determine whether to exit at SystemError */ int Py_NoSiteFlag; /* Suppress 'import site' */ int Py_BytesWarningFlag; /* Warn on str(bytes) and str(buffer) */ +int Py_DontWriteBytecodeFlag; /* Suppress writing bytecode files (*.py[co]) */ int Py_UseClassExceptionsFlag = 1; /* Needed by bltinmodule.c: deprecated */ int Py_FrozenFlag; /* Needed by getpath.c */ int Py_IgnoreEnvironmentFlag; /* e.g. PYTHONPATH, PYTHONHOME */ @@ -176,6 +177,8 @@ Py_InitializeEx(int install_sigs) Py_VerboseFlag = add_flag(Py_VerboseFlag, p); if ((p = Py_GETENV("PYTHONOPTIMIZE")) && *p != '\0') Py_OptimizeFlag = add_flag(Py_OptimizeFlag, p); + if ((p = Py_GETENV("PYTHONDONTWRITEBYTECODE")) && *p != '\0') + Py_DontWriteBytecodeFlag = add_flag(Py_DontWriteBytecodeFlag, p); interp = PyInterpreterState_New(); if (interp == NULL) diff --git a/Python/sysmodule.c b/Python/sysmodule.c index d6befa4..35834ae 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -1041,6 +1041,9 @@ _PySys_Init(void) v = Py_BuildValue("(UUU)", "CPython", branch, svn_revision); PyDict_SetItemString(sysdict, "subversion", v); Py_XDECREF(v); + PyDict_SetItemString(sysdict, "dont_write_bytecode", + v = PyBool_FromLong(Py_DontWriteBytecodeFlag)); + Py_XDECREF(v); /* * These release level checks are mutually exclusive and cover * the field, so don't get too fancy with the pre-processor! diff --git a/Python/thread.c b/Python/thread.c index de4fa05..f2da8c6 100644 --- a/Python/thread.c +++ b/Python/thread.c @@ -79,7 +79,7 @@ void PyThread_init_thread(void) { #ifdef Py_DEBUG - char *p = getenv("THREADDEBUG"); + char *p = Py_GETENV("PYTHONTHREADDEBUG"); if (p) { if (*p) |