[3.7] bpo-32691: Use mod_spec.parent when running modules with pdb (GH-5510)

Previously the module name was used, which broke relative imports when pdb was run against a plain module or submodule.
(cherry picked from commit 38bfa8418f5d39bcc7478b8f7aef4a632c26172e)

Co-authored-by: Mario Corchero <mariocj89@gmail.com>
diff --git a/Lib/pdb.py b/Lib/pdb.py
index 366a85b..60bdb76 100755
--- a/Lib/pdb.py
+++ b/Lib/pdb.py
@@ -1532,7 +1532,7 @@
         __main__.__dict__.update({
             "__name__": "__main__",
             "__file__": self.mainpyfile,
-            "__package__": module_name,
+            "__package__": mod_spec.parent,
             "__loader__": mod_spec.loader,
             "__spec__": mod_spec,
             "__builtins__": __builtins__,
diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
index 70d8d1d..9aa38e0 100644
--- a/Lib/test/test_pdb.py
+++ b/Lib/test/test_pdb.py
@@ -1447,10 +1447,41 @@
             quit
         """
         stdout, _ = self._run_pdb(['-m', self.module_name], commands)
-        self.assertTrue(any("VAR from module" in l for l in stdout.splitlines()))
+        self.assertTrue(any("VAR from module" in l for l in stdout.splitlines()), stdout)
         self.assertTrue(any("VAR from top" in l for l in stdout.splitlines()))
         self.assertTrue(any("second var" in l for l in stdout.splitlines()))
 
+    def test_relative_imports_on_plain_module(self):
+        # Validates running a plain module. See bpo32691
+        self.module_name = 't_main'
+        support.rmtree(self.module_name)
+        main_file = self.module_name + '/runme.py'
+        init_file = self.module_name + '/__init__.py'
+        module_file = self.module_name + '/module.py'
+        self.addCleanup(support.rmtree, self.module_name)
+        os.mkdir(self.module_name)
+        with open(init_file, 'w') as f:
+            f.write(textwrap.dedent("""
+                top_var = "VAR from top"
+            """))
+        with open(main_file, 'w') as f:
+            f.write(textwrap.dedent("""
+                from . import module
+                pass # We'll stop here and print the vars
+            """))
+        with open(module_file, 'w') as f:
+            f.write(textwrap.dedent("""
+                var = "VAR from module"
+            """))
+        commands = """
+            b 3
+            c
+            p module.var
+            quit
+        """
+        stdout, _ = self._run_pdb(['-m', self.module_name + '.runme'], commands)
+        self.assertTrue(any("VAR from module" in l for l in stdout.splitlines()), stdout)
+
 
 def load_tests(*args):
     from test import test_pdb