[Tutor] Is an executable available?
Liam Clarke
cyresse at gmail.com
Mon Feb 14 12:50:51 CET 2005
Hi Stuart, it's a vague question, so all I can give is vague answers.
What OS are you using?
But -
If your environment variables will contain info about the file, you
can use os.environ, however, that pulls all the env variables - i.e.,
on my WinXP -
>>> envVars = os.environ
>>> for (key, val) in envVars.items():
... print key, val
... print
....
TMP C:\DOCUME~1\Bob\LOCALS~1\Temp
COMPUTERNAME HAL
USERDOMAIN HAL
VDMSPATH C:\Program Files\VDMSound
COMMONPROGRAMFILES C:\Program Files\Common Files
PROCESSOR_IDENTIFIER x86 Family 6 Model 2 Stepping 1, AuthenticAMD
PROGRAMFILES C:\Program Files
PROCESSOR_REVISION 0201
PATH C:\Perl\bin\;C:\WINDOWS\system32;C:\WINDOWS;
C:\WINDOWS\System32\Wbem;C:\Program Files\VDMSound; :\python23;c:\j2sdk1.4.0\bin
SYSTEMROOT C:\WINDOWS
TEMP C:\DOCUME~1\Bob\LOCALS~1\Temp
PROCESSOR_ARCHITECTURE x86
ALLUSERSPROFILE C:\Documents and Settings\All Users
SESSIONNAME Console
HOMEPATH \
USERNAME Bob
LOGONSERVER \\HAL
COMSPEC C:\WINDOWS\system32\cmd.exe
CLASSPATH c:\javastz;c:\javastz\0_hello;c:\javastz\coscClasses;bsh.jar
PATHEXT .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
CLIENTNAME Console
WINDIR C:\WINDOWS
APPDATA C:\Documents and Settings\Bob\Application Data
HOMEDRIVE C:
SYSTEMDRIVE C:
NUMBER_OF_PROCESSORS 1
PROCESSOR_LEVEL 6
OS Windows_NT
USERPROFILE C:\Documents and Settings\Bob
That long discretion aside, so you can grab stuff straight from os.environ -
>>> print os.environ['SYSTEMROOT']
C:\WINDOWS
Alternatively, you can walk your directories.
If you have a rough idea where it might be, that's better than walking
your whole HD, but you could.
>>> for (dirpath, dirnames, filenames) in os.walk('c:/python23'):
... if 'cmreportsnocomments.py' in filenames:
... print 'I know this isn\'t OS safe, but I can\'t be bothered
importing os.path'
... x = "%s\\cmreportsnocomments.py" % dirpath
... if '/' in x:
... x = x.replace('/','\\')
... print x
...
I know this isn't OS safe, but I can't be bothered importing os.path
c:\python23\cmreportsnocomments.py
I know this isn't OS safe, but I can't be bothered importing os.path
c:\python23\tc_project\cmreportsnocomments.py
But yeah, I would recommend (if you can control your target app's
install) that you chuck a systemenv up with the installed path and go
from there.
HTH
Liam Clarke
On Mon, 14 Feb 2005 10:26:36 +0000, Stuart Murdock
<s.e.murdock at soton.ac.uk> wrote:
> Hi
>
> I am working from within python and want to know the best way to know if
> a certain package is installed for use on my machine.
>
> I want to know from within python that a specific executable file is on
> my path where I could actually run the command from a prompt in a system
> shell.
>
> I don't want to restrict exacltly where the file is and I don't want to
> do a general try catch.
>
> Are there any simple one or two liners that anyone is aware of?
>
> Thanks
>
> Stuart
>
> --
>
> Stuart Murdock Ph.D,
> Research Fellow,
> Dept. of Chemistry / E-Science,
> University of Southampton,
> Highfield, Southampton,
> SO17 1BJ, United Kingdom
>
> http://www.biosimgrid.org
>
> _______________________________________________
> Tutor maillist - Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
>
--
'There is only one basic human right, and that is to do as you damn well please.
And with it comes the only basic human duty, to take the consequences.
More information about the Tutor
mailing list