Issue #28192: Don't import readline in isolated mode
This commit is contained in:
parent
d2154ab0b7
commit
313523ce2d
10
Lib/site.py
10
Lib/site.py
|
@ -60,7 +60,8 @@ omitted because it is not mentioned in either path configuration file.
|
|||
|
||||
The readline module is also automatically configured to enable
|
||||
completion for systems that support it. This can be overridden in
|
||||
sitecustomize, usercustomize or PYTHONSTARTUP.
|
||||
sitecustomize, usercustomize or PYTHONSTARTUP. Starting Python in
|
||||
isolated mode (-I) disables automatic readline configuration.
|
||||
|
||||
After these operations, an attempt is made to import a module
|
||||
named sitecustomize, which can perform arbitrary additional
|
||||
|
@ -491,7 +492,7 @@ def execsitecustomize():
|
|||
else:
|
||||
raise
|
||||
except Exception as err:
|
||||
if os.environ.get("PYTHONVERBOSE"):
|
||||
if sys.flags.verbose:
|
||||
sys.excepthook(*sys.exc_info())
|
||||
else:
|
||||
sys.stderr.write(
|
||||
|
@ -511,7 +512,7 @@ def execusercustomize():
|
|||
else:
|
||||
raise
|
||||
except Exception as err:
|
||||
if os.environ.get("PYTHONVERBOSE"):
|
||||
if sys.flags.verbose:
|
||||
sys.excepthook(*sys.exc_info())
|
||||
else:
|
||||
sys.stderr.write(
|
||||
|
@ -538,12 +539,13 @@ def main():
|
|||
setquit()
|
||||
setcopyright()
|
||||
sethelper()
|
||||
if not sys.flags.isolated:
|
||||
enablerlcompleter()
|
||||
execsitecustomize()
|
||||
if ENABLE_USER_SITE:
|
||||
execusercustomize()
|
||||
|
||||
# Prevent edition of sys.path when python was started with -S and
|
||||
# Prevent extending of sys.path when python was started with -S and
|
||||
# site is imported later.
|
||||
if not sys.flags.no_site:
|
||||
main()
|
||||
|
|
|
@ -140,8 +140,6 @@ class HelperFunctionsTests(unittest.TestCase):
|
|||
self.assertRegex(err_out.getvalue(), 'Traceback')
|
||||
self.assertRegex(err_out.getvalue(), 'ModuleNotFoundError')
|
||||
|
||||
@unittest.skipIf(sys.platform == "win32", "Windows does not raise an "
|
||||
"error for file paths containing null characters")
|
||||
def test_addpackage_import_bad_pth_file(self):
|
||||
# Issue 5258
|
||||
pth_dir, pth_fn = self.make_pth("abc\x00def\n")
|
||||
|
@ -447,10 +445,9 @@ class StartupImportTests(unittest.TestCase):
|
|||
popen = subprocess.Popen([sys.executable, '-I', '-v', '-c',
|
||||
'import sys; print(set(sys.modules))'],
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE)
|
||||
stderr=subprocess.PIPE,
|
||||
encoding='utf-8')
|
||||
stdout, stderr = popen.communicate()
|
||||
stdout = stdout.decode('utf-8')
|
||||
stderr = stderr.decode('utf-8')
|
||||
modules = eval(stdout)
|
||||
|
||||
self.assertIn('site', modules)
|
||||
|
@ -474,6 +471,5 @@ class StartupImportTests(unittest.TestCase):
|
|||
if sys.platform != 'darwin':
|
||||
self.assertFalse(modules.intersection(collection_mods), stderr)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
|
|
@ -703,7 +703,8 @@ Py_Main(int argc, wchar_t **argv)
|
|||
PySys_SetArgv(argc-_PyOS_optind, argv+_PyOS_optind);
|
||||
|
||||
if ((Py_InspectFlag || (command == NULL && filename == NULL && module == NULL)) &&
|
||||
isatty(fileno(stdin))) {
|
||||
isatty(fileno(stdin)) &&
|
||||
!Py_IsolatedFlag) {
|
||||
PyObject *v;
|
||||
v = PyImport_ImportModule("readline");
|
||||
if (v == NULL)
|
||||
|
|
Loading…
Reference in New Issue