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

Jim Ingham via lldb-commits lldb-commits at lists.llvm.org
Tue Apr 5 17:54:09 PDT 2016


Will this be necessary for everybody who uses "command script import" with Python 3?  If so, it would be really nice to do this work in "command script import" if possible.  Otherwise everybody will have to put this goo at the top of every .py file they write for formatters & breakpoint commands and the like.

Jim


> On Apr 5, 2016, at 5:30 PM, Zachary Turner via lldb-commits <lldb-commits at lists.llvm.org> wrote:
> 
> 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
> 
> 
> _______________________________________________
> lldb-commits mailing list
> lldb-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits



More information about the lldb-commits mailing list