diff -r f21321d97145 -r 015c7e35bd84 DebugClients/Python3/DebugClientBase.py --- a/DebugClients/Python3/DebugClientBase.py Sun Jan 17 13:41:01 2010 +0000 +++ b/DebugClients/Python3/DebugClientBase.py Sun Jan 17 15:23:00 2010 +0000 @@ -461,8 +461,7 @@ pass sys.argv.append(fn) sys.argv.extend(eval(args.replace("u'", "'"))) - 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: @@ -508,8 +507,7 @@ pass sys.argv.append(fn) sys.argv.extend(eval(args.replace("u'", "'"))) - 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: @@ -547,8 +545,7 @@ pass sys.argv.append(fn) sys.argv.extend(eval(args.replace("u'", "'"))) - 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: @@ -587,8 +584,7 @@ pass sys.argv.append(fn) sys.argv.extend(eval(args.replace("u'", "'"))) - 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: @@ -1783,8 +1779,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: @@ -1981,3 +1976,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