On Jan 21, 8:58 am, pythonewbie <[EMAIL PROTECTED]> wrote: > I just would like to know if I would ALWAYS find the install directory > in sys.path[6] and site-packages directory in sys.path[7] on any Win32 > platform and sys.path[2] and site-packages directory in sys.path[6] on > any Linux platform. > > If the reply is : "YES you can be sure of it !"
No, you can't be sure of any such thing. In general in computing assuming a fixed position in a variable-length list is a nonsense. Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> from pprint import pprint as pp >>> pp([(x, p) for x, p in enumerate(sys.path)]) [(0, ''), (1, 'c:\\python25\\lib\\site-packages\\setuptools-0.6c3-py2.5.egg'), (2, 'C:\\WINDOWS\\system32\\python25.zip'), (3, 'c:\\python25\\DLLs'), (4, 'c:\\python25\\lib'), (5, 'c:\\python25\\lib\\plat-win'), (6, 'c:\\python25\\lib\\lib-tk'), (7, 'c:\\python25'), (8, 'c:\\python25\\lib\\site-packages'), (9, 'c:\\python25\\lib\\site-packages\\win32'), (10, 'c:\\python25\\lib\\site-packages\\win32\\lib'), (11, 'c:\\python25\\lib\\site-packages\\Pythonwin')] >>> Something like this might be more reliable: >>> import sys, re >>> for p in sys.path: ... m = re.match(r'(.*)[\\/][Ll]ib[\\/]site-packages$', p) ... if m: ... print m.group(1, 0) ... break ... else: ... raise Exception('Huh?') ... ('c:\\python25', 'c:\\python25\\lib\\site-packages') >>> > > All would be great for me and I would be ready to create a script to > detect with a reliable manner the installation dir. et site-packages > dir. for all my Linux/Win32 Python apps. You mentioned Python versions back to 2.1 earlier. However you evidently haven't bothered to start up Python 2.1 and look at sys.path: C:\junk>\python21\python Python 2.1.3 (#35, Apr 8 2002, 17:47:50) [MSC 32 bit (Intel)] on win32 Type "copyright", "credits" or "license" for more information. >>> import sys; sys.path ['', 'C:\\junk', 'C:\\python21\\DLLs', 'C:\\python21\\lib', 'C:\ \python21\\lib\\ plat-win', 'C:\\python21\\lib\\lib-tk', 'C:\\python21'] >>> Before you rush out and re-invent the wheel, have a look at this: http://www.python.org/community/sigs/current/distutils-sig/ You may like to re-ask your questions on the distutils mailing list. HTH, John -- http://mail.python.org/mailman/listinfo/python-list