mirror of
https://github.com/python/cpython.git
synced 2025-07-28 21:55:21 +00:00
Patch #602345 by Neal Norwitz and me: add -B option and PYTHONDONTWRITEBYTECODE envvar to skip writing bytecode.
This commit is contained in:
parent
b3255ed8c9
commit
2da0fceba7
8 changed files with 56 additions and 8 deletions
|
@ -950,8 +950,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);
|
||||
|
|
|
@ -72,6 +72,7 @@ int Py_VerboseFlag; /* Needed by import.c */
|
|||
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_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_UnicodeFlag = 0; /* Needed by compile.c */
|
||||
|
@ -172,6 +173,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)
|
||||
|
|
|
@ -1128,6 +1128,9 @@ _PySys_Init(void)
|
|||
v = Py_BuildValue("(ssz)", "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!
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue