summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
Diffstat (limited to 'Python')
-rw-r--r--Python/import.c9
-rw-r--r--Python/pythonrun.c3
-rw-r--r--Python/sysmodule.c3
-rw-r--r--Python/thread.c2
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)