Re: Python 3 issue

Bill Deegan <bill-cJFiu+DHMVC5azolltMz9laTQe2KTcn/@public.gmane.org>
Newsgroups gmane.comp.programming.tools.scons.devel
Message-ID <CAEyG4CHp6eyha8620d7gKAfrmW0ad-Nmxk_-UAoV-1sp1kFnYA@mail.gmail.com>
Russel,

I've created a git repo in bitbucket to facilitate talking about this issue.

https://bitbucket.org/bdbaddog/scons-russel-example

And given you permissions.
The second commit should be the same as your zip file.
Going forward, it's far easier to create a throwaway repo and share it than
to pass zip files back and forth..

-Bill


On Fri, Jun 23, 2017 at 7:14 AM, Russel Winder <[email protected]> wrote:

> Python 3 changed the way imports worked, absolute imports became the
> norm. However relative imports were retain via extra syntax. This has,
> I believe been backported to Python 2.7.
>
> The summary of the situation is that to enable tools as packages as
> well as tools as modules, you have to use relative imports of generate
> and exists in __init__.py. This used to work fine. A very minor change
> of syntax means it all still works on Python 2. However on Python 3
> something weird happens. This is a SCons thing, because if you do the
> equivalent it pure Python is works fine with either 2 or 3.
>
> So given the attached project:
>
> > python /home/users/russel/Repositories/Mercurial/Forks/
> SCons/src/script/scons.py
> scons: Reading SConscript files ...
> __init__ loaded.
> generate called.
> scons: done reading SConscript files.
> scons: Building targets ...
> scons: `.' is up to date.
> scons: done building targets.
> 546 lavaine:~/Progs/OddsByLanguage/SCons/RelativeImports
> |> python3 /home/users/russel/Repositories/Mercurial/Forks/
> SCons/src/script/scons.py
> scons: Reading SConscript files ...
> SystemError: Parent module 'relative' not loaded, cannot perform relative
> import:
>   File "/home/users/russel/Progs/OddsByLanguage/SCons/RelativeImports/SConstruct",
> line 1:
>     env = Environment(tools=['relative'])
>   File "/home/users/russel/Repositories/Mercurial/Forks/
> SCons/src/engine/SCons/Environment.py", line 982:
>     apply_tools(self, tools, toolpath)
>   File "/home/users/russel/Repositories/Mercurial/Forks/
> SCons/src/engine/SCons/Environment.py", line 107:
>     env.Tool(tool)
>   File "/home/users/russel/Repositories/Mercurial/Forks/
> SCons/src/engine/SCons/Environment.py", line 1788:
>     tool = SCons.Tool.Tool(tool, toolpath, **kw)
>   File "/home/users/russel/Repositories/Mercurial/Forks/
> SCons/src/engine/SCons/Tool/__init__.py", line 115:
>     module = self._tool_module()
>   File "/home/users/russel/Repositories/Mercurial/Forks/
> SCons/src/engine/SCons/Tool/__init__.py", line 228:
>     spec.loader.exec_module(module)
>   File "<frozen importlib._bootstrap_external>", line 697:
>
>   File "<frozen importlib._bootstrap>", line 222:
>
>   File "/home/users/russel/Progs/OddsByLanguage/SCons/
> RelativeImports/site_scons/site_tools/relative/__init__.py", line 3:
>     from .thingy import generate, exists
>
>
>
> --
> Russel.
> ============================================================
> =================
> Dr Russel Winder      t: +44 20 7585 2200   voip:
> sip:[email protected]
> 41 Buckmaster Road    m: +44 7770 465 077   xmpp: [email protected]
> London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder
> _______________________________________________
> Scons-dev mailing list
> [email protected]
> https://pairlist2.pair.net/mailman/listinfo/scons-dev
>
>

_______________________________________________
Scons-dev mailing list
[email protected]
https://pairlist2.pair.net/mailman/listinfo/scons-dev
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.