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

Reply via email to