[Lldb-commits] [lldb] r265461 - XFail TestImport.py on Windows because Python 3 import rules don't work that way.

Zachary Turner via lldb-commits lldb-commits at lists.llvm.org
Tue Apr 5 17:30:04 PDT 2016


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 <amccarth at 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 <zturner at google.com> wrote:
>
>> Without the modification to sys.path
>>
>> On Tue, Apr 5, 2016 at 3:39 PM Zachary Turner <zturner at 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 <amccarth at 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 <zturner at 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 at 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 at lists.llvm.org
>>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
>>>>>>
>>>>>
>>>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20160406/641785cc/attachment.html>


More information about the lldb-commits mailing list