DebugClients/Python/DebugClientBase.py

changeset 72
015c7e35bd84
parent 13
1af94a91f439
child 107
918a6be6f051
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

eric ide

mercurial