Yea I wasn't sure if the . would be necessary or not. If you write "from __future__ import absolute_import" at the top of each of these python files (foo.py and foo2.py or whatever they're called) then this should guarantee that the behavior is the same in both Python 2 and Python 3
On Tue, Apr 5, 2016 at 4:01 PM Adrian McCarthy <amcca...@google.com> wrote: > "error: module importing failed: Parent module '' not loaded, cannot > perform relative import" > > If you omit the dot (i.e., `from foo import foo2`), it appears to work, > but I'm not sure that does the right thing. I'll keep investigating. > > On Tue, Apr 5, 2016 at 3:40 PM, Zachary Turner <ztur...@google.com> wrote: > >> Without the modification to sys.path >> >> On Tue, Apr 5, 2016 at 3:39 PM Zachary Turner <ztur...@google.com> wrote: >> >>> Can you try to change "import foo2" to "from .foo import foo2" >>> On Tue, Apr 5, 2016 at 2:52 PM Adrian McCarthy <amcca...@google.com> >>> wrote: >>> >>>> I've drilled down into the Python import statement. It's >>>> in ScriptInterpreterPython::LoadScriptingModule. The function inserts the >>>> diretory into sys.path and then issues a vanilla Python import statement. >>>> >>>> I spoke with one of our local Python experts who said that this >>>> technique to specify the directory is probably unreliable, as the rules for >>>> where Python looks for modules has evolved. The rules for both relative >>>> and absolute module paths changed from Python 2 to 3. >>>> >>>> I'll revert the xfail if you want. But this has been broken for quite >>>> a while (as has another test, which I'm looking into now). >>>> >>>> On Tue, Apr 5, 2016 at 2:29 PM, Zachary Turner <ztur...@google.com> >>>> wrote: >>>> >>>>> I think we need some more information before we xfail this. It would >>>>> help to drill down to either the python import statement or the >>>>> PyImport_ImportModule C api call that actually does the import. >>>>> >>>>> If you can get that, i can help come up with a fix. Just need to step >>>>> through the execution of the command until you get to the python or c code >>>>> that tries to do the import >>>>> >>>>> On Tue, Apr 5, 2016 at 1:54 PM Adrian McCarthy via lldb-commits < >>>>> lldb-commits@lists.llvm.org> wrote: >>>>> >>>>>> Author: amccarth >>>>>> Date: Tue Apr 5 15:49:09 2016 >>>>>> New Revision: 265461 >>>>>> >>>>>> URL: http://llvm.org/viewvc/llvm-project?rev=265461&view=rev >>>>>> Log: >>>>>> XFail TestImport.py on Windows because Python 3 import rules don't >>>>>> work that way. >>>>>> >>>>>> Modified: >>>>>> >>>>>> lldb/trunk/packages/Python/lldbsuite/test/functionalities/command_script/import/TestImport.py >>>>>> >>>>>> Modified: >>>>>> lldb/trunk/packages/Python/lldbsuite/test/functionalities/command_script/import/TestImport.py >>>>>> URL: >>>>>> http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/command_script/import/TestImport.py?rev=265461&r1=265460&r2=265461&view=diff >>>>>> >>>>>> ============================================================================== >>>>>> --- >>>>>> lldb/trunk/packages/Python/lldbsuite/test/functionalities/command_script/import/TestImport.py >>>>>> (original) >>>>>> +++ >>>>>> lldb/trunk/packages/Python/lldbsuite/test/functionalities/command_script/import/TestImport.py >>>>>> Tue Apr 5 15:49:09 2016 >>>>>> @@ -16,6 +16,7 @@ class ImportTestCase(TestBase): >>>>>> >>>>>> @add_test_categories(['pyapi']) >>>>>> @no_debug_info_test >>>>>> + @expectedFailureAll(oslist=["windows"], bugnumber=" >>>>>> llvm.org/pr27227: Python 3 import rules are different") >>>>>> def test_import_command(self): >>>>>> """Import some Python scripts by path and test them""" >>>>>> self.run_test() >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> lldb-commits mailing list >>>>>> lldb-commits@lists.llvm.org >>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits >>>>>> >>>>> >>>> >
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits