[Sugar-devel] [PATCH sugar-toolkit] Insert activity root path in front of the reset of sys.path
From: Aleksey Lim Otherwise it is possible to include, eg, system modules before local ones. --- src/sugar/activity/main.py |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/sugar/activity/main.py b/src/sugar/activity/main.py index 10d0031..eee717e 100644 --- a/src/sugar/activity/main.py +++ b/src/sugar/activity/main.py @@ -88,7 +88,7 @@ def main(): sys.exit(1) bundle_path = os.environ['SUGAR_BUNDLE_PATH'] -sys.path.append(bundle_path) +sys.path.insert(0, bundle_path) bundle = ActivityBundle(bundle_path) -- 1.7.3.4 ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] [PATCH sugar-toolkit] Insert activity root path in front of the reset of sys.path
Excerpts from Martin Langhoff's message of Tue Feb 08 04:46:32 +0100 2011: > To wit, note the first entry at > > $ python > Python 2.7 (r27:82500, Sep 16 2010, 18:03:06) [...] > >>> sys.path > ['', '/usr/lib/python27.zip', '/usr/lib/python2.7', [...] > The behaviour sought by Aleksey's patch makes sense. I am surprised > that CWD isn't set to SUGAR_BUNDLE_PATH, maybe that needs to get fixed > instead. Thanks for disproving my assumption that it's something Python 2.x does differently and pointing at the actual issue. I agree that we should either change the working directory or tweak sys.path, but I'm still a bit worried about compatibility. Sascha -- http://sascha.silbe.org/ http://www.infra-silbe.de/ signature.asc Description: PGP signature ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] [PATCH sugar-toolkit] Insert activity root path in front of the reset of sys.path
On Sat, Feb 12, 2011 at 1:57 PM, Sascha Silbe wrote: >> The behaviour sought by Aleksey's patch makes sense. I am surprised >> that CWD isn't set to SUGAR_BUNDLE_PATH, maybe that needs to get fixed >> instead. > > Thanks for disproving my assumption that it's something Python 2.x does > differently and pointing at the actual issue. > > I agree that we should either change the working directory or tweak > sys.path, but I'm still a bit worried about compatibility. Hm. AFAICS, when an activity starts under S-0.84 the cwd is set correctly. I've been debugging an activity that starts from a shell script (as activities using libsugarize are prone to do) and the script assumes (correctly) that CWD is the activity directory. So I am intrigued about Aleksey's patch. Aleksey -- did you prep your patch in response to an observed behaviour? What was it? Maybe the problem was misdiagnosed? cheers, m -- martin.langh...@gmail.com mar...@laptop.org -- Software Architect - OLPC - ask interesting questions - don't get distracted with shiny stuff - working code first - http://wiki.laptop.org/go/User:Martinlanghoff ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] [PATCH sugar-toolkit] Insert activity root path in front of the reset of sys.path
On Sat, Feb 12, 2011 at 02:47:32PM -0500, Martin Langhoff wrote: > On Sat, Feb 12, 2011 at 1:57 PM, Sascha Silbe > wrote: > >> The behaviour sought by Aleksey's patch makes sense. I am surprised > >> that CWD isn't set to SUGAR_BUNDLE_PATH, maybe that needs to get fixed > >> instead. > > > > Thanks for disproving my assumption that it's something Python 2.x does > > differently and pointing at the actual issue. > > > > I agree that we should either change the working directory or tweak > > sys.path, but I'm still a bit worried about compatibility. > > Hm. AFAICS, when an activity starts under S-0.84 the cwd is set > correctly. I've been debugging an activity that starts from a shell > script (as activities using libsugarize are prone to do) and the > script assumes (correctly) that CWD is the activity directory. > > So I am intrigued about Aleksey's patch. Aleksey -- did you prep your > patch in response to an observed behaviour? What was it? Maybe the > problem was misdiagnosed? The problem is, if I got it right, that cwd means nothing for searching modules, only sys.path(and so) makes sense. After launching Python interpreter, the $0 becomes sys.path[0]. But the problem is that activities start from sugar-activity command, thus sys.path[0] is /usr/bin/. So, there is need in adding SUGAR_BUNDLE_PATH to the sys.path manually (ie simulate Python interpreter behaviour). But existed code does it wrong (add to the end of sys.path). > > cheers, > > > m > -- > martin.langh...@gmail.com > mar...@laptop.org -- Software Architect - OLPC > - ask interesting questions > - don't get distracted with shiny stuff - working code first > - http://wiki.laptop.org/go/User:Martinlanghoff > ___ > Sugar-devel mailing list > Sugar-devel@lists.sugarlabs.org > http://lists.sugarlabs.org/listinfo/sugar-devel > -- Aleksey ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] [PATCH sugar-toolkit] Insert activity root path in front of the reset of sys.path
On Sat, Feb 12, 2011 at 6:57 PM, Aleksey Lim wrote: > The problem is, if I got it right, that cwd means nothing for searching > modules, only sys.path(and so) makes sense. After launching Python > interpreter, the $0 becomes sys.path[0]. But the problem is that > activities start from sugar-activity command, thus sys.path[0] is > /usr/bin/. So, there is need in adding SUGAR_BUNDLE_PATH to the sys.path > manually (ie simulate Python interpreter behaviour). But existed code > does it wrong (add to the end of sys.path). OK - so when starting pure Python activities, the shell is never involved, and we just fork the python interpreter. In that case, yes, it makes sense to put SUGAR_BUNDLE_PATH in sys.path[0]. It mimics what Python would normally do. m -- martin.langh...@gmail.com mar...@laptop.org -- Software Architect - OLPC - ask interesting questions - don't get distracted with shiny stuff - working code first - http://wiki.laptop.org/go/User:Martinlanghoff ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel