diff -r f21321d97145 -r 015c7e35bd84 DebugClients/Python/DebugClientBase.py --- a/DebugClients/Python/DebugClientBase.py Sun Jan 17 13:41:01 2010 +0000 +++ b/DebugClients/Python/DebugClientBase.py Sun Jan 17 15:23:00 2010 +0000 @@ -474,8 +474,7 @@ pass sys.argv.append(fn) sys.argv.extend(eval(args)) - sys.path[0] = os.path.dirname(sys.argv[0]) - sys.path.insert(0, '') + sys.path = self.__getSysPath(os.path.dirname(sys.argv[0])) if wd == '': os.chdir(sys.path[1]) else: @@ -520,8 +519,7 @@ pass sys.argv.append(fn) sys.argv.extend(eval(args)) - sys.path[0] = os.path.dirname(sys.argv[0]) - sys.path.insert(0, '') + sys.path = self.__getSysPath(os.path.dirname(sys.argv[0])) if wd == '': os.chdir(sys.path[1]) else: @@ -558,8 +556,7 @@ pass sys.argv.append(fn) sys.argv.extend(eval(args)) - sys.path[0] = os.path.dirname(sys.argv[0]) - sys.path.insert(0, '') + sys.path = self.__getSysPath(os.path.dirname(sys.argv[0])) if wd == '': os.chdir(sys.path[1]) else: @@ -597,8 +594,7 @@ pass sys.argv.append(fn) sys.argv.extend(eval(args)) - sys.path[0] = os.path.dirname(sys.argv[0]) - sys.path.insert(0, '') + sys.path = self.__getSysPath(os.path.dirname(sys.argv[0])) if wd == '': os.chdir(sys.path[1]) else: @@ -1763,8 +1759,7 @@ self.dircache = [] sys.argv = progargs[:] sys.argv[0] = os.path.abspath(sys.argv[0]) - sys.path[0] = os.path.dirname(sys.argv[0]) - sys.path.insert(0, '') + sys.path = self.__getSysPath(os.path.dirname(sys.argv[0])) if wd == '': os.chdir(sys.path[1]) else: @@ -1960,3 +1955,19 @@ return DebugClientOrigClose(fd) + + def __getSysPath(self, firstEntry): + """ + Private slot to calculate a path list including the PYTHONPATH + environment variable. + + @param firstEntry entry to be put first in sys.path (string) + @return path list for use as sys.path (list of strings) + """ + sysPath = [path for path in os.environ.get("PYTHONPATH", "").split(os.pathsep) + if path not in sys.path] + sys.path[:] + if "" in sysPath: + sysPath.remove("") + sysPath.insert(0, firstEntry) + sysPath.insert(0, '') + return sysPath