From eb3cd301aea85de122c828afa6473bfc6c9eb10e Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Thu, 20 May 2010 18:37:55 +0000 Subject: Turned out that if you used explicit relative import syntax (e.g. from .os import sep) and it failed, import would still try the implicit relative import semantics of an absolute import (from os import sep). That's not right, so when level is negative, only do explicit relative import semantics. Fixes issue #7902. Thanks to Meador Inge for the patch. --- Python/import.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'Python/import.c') diff --git a/Python/import.c b/Python/import.c index 7abe679572..990ee51311 100644 --- a/Python/import.c +++ b/Python/import.c @@ -2134,7 +2134,8 @@ import_module_level(char *name, PyObject *globals, PyObject *locals, if (parent == NULL) return NULL; - head = load_next(parent, Py_None, &name, buf, &buflen); + head = load_next(parent, level < 0 ? Py_None : parent, &name, buf, + &buflen); if (head == NULL) return NULL; -- cgit v1.2.1