This change: https://bitbucket.org/bdbaddog/scons-russel-example/commits/48899a710f9afbec891307addd6ae5b9c08d53c9?at=master
Will make it work in py2 and py3. Any reason we can't live with that? -Bill On Fri, Jun 23, 2017 at 10:38 AM, Bill Deegan <[email protected]> wrote: > 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/RelativeImpor >> ts/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
