On Jan 21, 11:00 am, pythonewbie <[EMAIL PROTECTED]> wrote: > On 21 jan, 00:09, John Machin <[EMAIL PROTECTED]> wrote: > > > > > 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 > > Hi John, > > Thanks for your help and suggestions. > > Your code is very interesting for the newbie that I am. > > But I have not understood your two last suggestions... > > As a newbie, I have asked usenet for help in order to get a easy/ > convenient way to get the site-packages directory, and the best reply > I obtained, was to use the function > distutils.sysconfig.get_python_lib(). > > This function is a really good way to avoid to re-invent the wheel to > get what I wanted ! >
I am talking about your underlying goal "My goal is to verify if an/ several extension(s) are installed and to automatically install the missing ones on Linux or Win32." ... you may well find that there is at least one wheel for "automatically install". -- http://mail.python.org/mailman/listinfo/python-list